Leaked source code of windows server 2003
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
/*++
Copyright (c) 1992,1993 Microsoft Corporation
Module Name:
psshmem.h
Abstract: This module defines the interface format for the shared memory region that psprint and psexe use together.
Author:
James Bratsanos (v-jimbr,mcrafts!jamesb) 6-Dec-1992
--*/
#define PSEXE_OK_EXIT 0
#define PSEXE_ERROR_EXIT 99
//
// Define some bits that tells us about the aborted and paused/un-paused
// state of the current job
//
#define PS_SHAREDMEM_PAUSED 0x00000001
#define PS_SHAREDMEM_ABORTED 0x00000002
#define PS_SHAREDMEM_SECURITY_ABORT 0x00000004
typedef struct { DWORD dwSize; DWORD dwFlags; DWORD dwNextOffset; DWORD dwPrinterName; DWORD dwDocumentName; DWORD dwPrintDocumentDocName; DWORD dwDevmode; DWORD dwControlName; DWORD dwJobId; } PSPRINT_SHARED_MEMORY; typedef PSPRINT_SHARED_MEMORY *PPSPRINT_SHARED_MEMORY;
//
// Define some macros that make copying stuff to /from shared memory
// simple. The item passed in pItem is actually stuffed with the offset
// of the data from the base of the structure. This has to be done becuase
// processes sharing this data will not have this data at the same virtual
// address
//
#define UTLPSCOPYTOSHARED( pBase, pSrc, pItem, dwLen ) \
{ \ DWORD dwRealSize; \ PBYTE pDest; \ if (pSrc != NULL) { \ dwRealSize = (dwLen + 3) & ~0x03; \ pDest = (LPBYTE) (pBase) + pBase->dwNextOffset; \ memcpy( (LPVOID) pDest, (LPVOID) pSrc, dwLen ); \ pItem = pBase->dwNextOffset; \ pBase->dwNextOffset += dwRealSize; \ } else { \ pItem = 0; \ } \ }
#define UTLPSRETURNPTRFROMITEM( pBase, pItem ) \
( pItem ? ( (LPBYTE) ( (LPBYTE)pBase + pItem )) : (LPBYTE) NULL )
|