30#if (STRICT && (NTDDI_VERSION >= NTDDI_VISTA))
31#define HKEYMONITOR HKEY
33#define HKEYMONITOR HANDLE
36#define PRINTER_NOTIFY_STATUS_ENDPOINT 1
37#define PRINTER_NOTIFY_STATUS_POLL 2
38#define PRINTER_NOTIFY_STATUS_INFO 4
40#define ROUTER_UNKNOWN 0
41#define ROUTER_SUCCESS 1
42#define ROUTER_STOP_ROUTING 2
44#if (NTDDI_VERSION >= NTDDI_WINXP)
45#define MONITOR2_SIZE_WIN2K (sizeof(DWORD) + (sizeof(PVOID)*18))
48#define COPYFILE_EVENT_SET_PRINTER_DATAEX 1
49#define COPYFILE_EVENT_DELETE_PRINTER 2
50#define COPYFILE_EVENT_ADD_PRINTER_CONNECTION 3
51#define COPYFILE_EVENT_DELETE_PRINTER_CONNECTION 4
52#define COPYFILE_EVENT_FILES_CHANGED 5
54#define COPYFILE_FLAG_CLIENT_SPOOLER 0x00000001
55#define COPYFILE_FLAG_SERVER_SPOOLER 0x00000002
57#define PRINTER_NOTIFY_INFO_DATA_COMPACT 1
161 (
WINAPI *fpAddPrinterDriver)(
167 (
WINAPI *fpEnumPrinterDrivers)(
177 (
WINAPI *fpGetPrinterDriver)(
186 (
WINAPI *fpGetPrinterDriverDirectory)(
195 (
WINAPI *fpDeletePrinterDriver)(
201 (
WINAPI *fpAddPrintProcessor)(
208 (
WINAPI *fpEnumPrintProcessors)(
218 (
WINAPI *fpGetPrintProcessorDirectory)(
227 (
WINAPI *fpDeletePrintProcessor)(
233 (
WINAPI *fpEnumPrintProcessorDatatypes)(
243 (
WINAPI *fpStartDocPrinter)(
281 (
WINAPI *fpGetPrinterData)(
290 (
WINAPI *fpSetPrinterData)(
298 (
WINAPI *fpWaitForPrinterChange)(
362 (
WINAPI *fpConfigurePort)(
374 (
WINAPI *fpCreatePrinterIC)(
379 (
WINAPI *fpPlayGdiScriptOnPrinterIC)(
394 (
WINAPI *fpPrinterMessageBox)(
409 (
WINAPI *fpDeleteMonitor)(
420 (
WINAPI *fpGetPrinterDriverEx)(
449 (
WINAPI *fpRefreshPrinterChangeNotification)(
456 (
WINAPI *fpOpenPrinterEx)(
479 (
WINAPI *fpEnumPrinterData)(
491 (
WINAPI *fpDeletePrinterData)(
496 (
WINAPI *fpClusterSplOpen)(
508 (
WINAPI *fpSetPrinterDataEx)(
517 (
WINAPI *fpGetPrinterDataEx)(
527 (
WINAPI *fpEnumPrinterDataEx)(
536 (
WINAPI *fpEnumPrinterKey)(
544 (
WINAPI *fpDeletePrinterDataEx)(
550 (
WINAPI *fpDeletePrinterKey)(
563 (
WINAPI *fpDeletePrinterDriverEx)(
571 (
WINAPI *fpAddPerMachineConnection)(
578 (
WINAPI *fpDeletePerMachineConnection)(
583 (
WINAPI *fpEnumPerMachineConnections)(
602 (
WINAPI *fpAddPrinterDriverEx)(
617 (
WINAPI *fpGetSpoolFileInfo)(
637 (
WINAPI *fpSendRecvBidiData)(
775 (
WINAPI *pfnStartDocPort)(
814 (
WINAPI *pfnConfigurePort)(
826 (
WINAPI *pfnGetPrinterDataFromPort)(
837 (
WINAPI *pfnSetPortTimeOuts)(
896 (
WINAPI *pfnStartDocPort)(
937 (
WINAPI *pfnConfigurePort)(
951 (
WINAPI *pfnGetPrinterDataFromPort)(
962 (
WINAPI *pfnSetPortTimeOuts)(
988#if (NTDDI_VERSION >= NTDDI_WINXP)
990 (
WINAPI *pfnSendRecvBidiDataFromPort)(
998#if (NTDDI_VERSION >= NTDDI_WIN7)
1001 (
WINAPI *pfnNotifyUsedPorts)(
1007 (
WINAPI *pfnNotifyUnusedPorts)(
1027 (
WINAPI *pfnConfigurePortUI)(
1033 (
WINAPI *pfnDeletePortUI)(
1040#if (NTDDI_VERSION >= NTDDI_WINXP)
1062#if (NTDDI_VERSION >= NTDDI_WS03)
1063#ifndef __ATTRIBUTE_INFO_3__
1064#define __ATTRIBUTE_INFO_3__
1080#if (NTDDI_VERSION >= NTDDI_VISTA)
1124#ifndef __ATTRIBUTE_INFO_4__
1125#define __ATTRIBUTE_INFO_4__
1145#define REVERSE_PAGES_FOR_REVERSE_DUPLEX (0x00000001)
1146#define DONT_SEND_EXTRA_PAGES_FOR_DUPLEX (0x00000001 << 1)
1148#define RIGHT_THEN_DOWN (0x00000001)
1149#define DOWN_THEN_RIGHT (0x00000001 << 1)
1150#define LEFT_THEN_DOWN (0x00000001 << 2)
1151#define DOWN_THEN_LEFT (0x00000001 << 3)
1153#define BOOKLET_EDGE_LEFT 0x00000000
1154#define BOOKLET_EDGE_RIGHT 0x00000001
1160#if (OSVER(NTDDI_VERSION) == NTDDI_W2K)
1162#elif ((OSVER(NTDDI_VERSION) == NTDDI_WINXP) || (OSVER(NTDDI_VERSION) == NTDDI_WS03))
1407 PVOID pPrinterNotifyOptions,
1438#if (NTDDI_VERSION >= NTDDI_WINXP)
1471#if (NTDDI_VERSION >= NTDDI_WS03)
1480#if (NTDDI_VERSION >= NTDDI_VISTA)
1482#define FILL_WITH_DEFAULTS 0x1
unsigned long long UINT64
static TAGREF LPCWSTR LPDWORD LPVOID lpBuffer
BOOL WINAPI SpoolerCopyFileEvent(LPWSTR printer, LPWSTR key, DWORD event)
DWORD WINAPI GenerateCopyFilePaths(LPCWSTR printer, LPCWSTR directory, LPBYTE clientinfo, DWORD level, LPWSTR sourcedir, LPDWORD sourcedirsize, LPWSTR targetdir, LPDWORD targetdirsize, DWORD flags)
CLOSEPRINTER fpClosePrinter
static LPCSTR DWORD void * pvReserved
#define _In_reads_bytes_(size)
#define _Out_writes_bytes_(size)
#define _Out_writes_bytes_to_(size, count)
#define _Outptr_result_maybenull_
#define _Inout_updates_(size)
#define _Inout_updates_to_(size, count)
#define _At_(target, annos)
#define _In_reads_opt_(size)
#define _Out_writes_bytes_to_opt_(size, count)
_In_ UINT _In_ DWORD _Out_ DWORD * pdwResult
static ABORTPRINTER fpAbortPrinter
static ENDPAGEPRINTER fpEndPagePrinter
static CLOSESPOOLFILEHANDLE fpCloseSpoolFileHandle
static ENDDOCPRINTER fpEndDocPrinter
static COMMITSPOOLDATA fpCommitSpoolData
static SPLREADPRINTER fpSplReadPrinter
static SEEKPRINTER fpSeekPrinter
static STARTPAGEPRINTER fpStartPagePrinter
static READPRINTER fpReadPrinter
BOOL WINAPI OpenPrinterToken(PHANDLE phToken)
struct _PRINTER_NOTIFY_INIT * PPRINTER_NOTIFY_INIT
HANDLE WINAPI RevertToPrinterSelf(VOID)
BOOL WINAPI ReplyPrinterChangeNotificationEx(_In_ HANDLE hNotify, _In_ DWORD dwColor, _In_ DWORD fdwFlags, _Out_ PDWORD pdwResult, _In_ PVOID pPrinterNotifyInfo)
struct _ATTRIBUTE_INFO_4 * PATTRIBUTE_INFO_4
BOOL WINAPI ProvidorFindClosePrinterChangeNotification(_In_ HANDLE hPrinter)
BOOL WINAPI SpoolerFindFirstPrinterChangeNotification(HANDLE hPrinter, DWORD fdwFlags, DWORD fdwOptions, PHANDLE phEvent, PVOID pPrinterNotifyOptions, PVOID pvReserved)
HANDLE WINAPI OpenPrintProcessor(_In_ LPWSTR pPrinterName, _In_ PPRINTPROCESSOROPENDATA pPrintProcessorOpenData)
struct _SPLCLIENT_INFO_3 SPLCLIENT_INFO_3
VOID WINAPI SpoolerFreePrinterNotifyInfo(_In_ PPRINTER_NOTIFY_INFO pInfo)
LPMONITOR2 WINAPI InitializePrintMonitor2(_In_ PMONITORINIT pMonitorInit, _Out_ PHANDLE phMonitor)
struct _PRINTER_NOTIFY_INIT * LPPRINTER_NOTIFY_INIT
struct _PRINTPROCESSOROPENDATA PRINTPROCESSOROPENDATA
VOID WINAPI RouterFreeBidiMem(_In_ PVOID pMemPointer)
_In_ HWND _In_ PCWSTR pszMonitorNameIn
PPRINTER_NOTIFY_INFO WINAPI RouterAllocPrinterNotifyInfo(_In_ DWORD cPrinterNotifyInfoData)
BOOL WINAPI XcvOpenPort(_In_ LPCWSTR pszObject, _In_ ACCESS_MASK GrantedAccess, _Out_ PHANDLE phXcv)
struct _MONITOREX MONITOREX
struct _MONITORINIT MONITORINIT
struct _MONITORINIT * PMONITORINIT
struct SHOWUIPARAMS * PSHOWUIPARAMS
DWORD WINAPI RouterFreeBidiResponseContainer(_In_ PBIDI_RESPONSE_CONTAINER pData)
struct _SPLCLIENT_INFO_2_V3 SPLCLIENT_INFO_2_LONGHORN
BOOL WINAPI InitializePrintProvidor(_Out_writes_bytes_(cbPrintProvidor) LPPRINTPROVIDOR pPrintProvidor, _In_ DWORD cbPrintProvidor, _In_opt_ LPWSTR pFullRegistryPath)
BOOL WINAPI GetJobAttributes(_In_ LPWSTR pPrinterName, _In_ LPDEVMODEW pDevmode, _Out_ PATTRIBUTE_INFO_3 pAttributeInfo)
BOOL WINAPI PartialReplyPrinterChangeNotification(_In_ HANDLE hNotify, _In_opt_ PPRINTER_NOTIFY_INFO_DATA pInfoDataSrc)
struct _SPLCLIENT_INFO_2_V2 SPLCLIENT_INFO_2_WINXP
BOOL WINAPI InitializeMonitor(_In_ LPWSTR pRegistryRoot)
BOOL WINAPI DeletePortUI(_In_ PCWSTR pszServer, _In_ HWND hWnd, _In_ PCWSTR pszPortName)
BOOL WINAPI ControlPrintProcessor(_In_ HANDLE hPrintProcessor, _In_ DWORD Command)
DWORD WINAPI CallRouterFindFirstPrinterChangeNotification(_In_ HANDLE hPrinter, _In_ DWORD fdwFlags, _In_ DWORD fdwOptions, _In_ HANDLE hNotify, _In_ PPRINTER_NOTIFY_OPTIONS pPrinterNotifyOptions)
HANDLE WINAPI CreatePrinterIC(_In_ HANDLE hPrinter, _In_opt_ LPDEVMODEW pDevMode)
struct _PRINTER_NOTIFY_INIT PRINTER_NOTIFY_INIT
struct _ATTRIBUTE_INFO_3 ATTRIBUTE_INFO_3
struct MESSAGEBOX_PARAMS * PMESSAGEBOX_PARAMS
DWORD WINAPI XcvDataPort(_In_ HANDLE hXcv, _In_ LPCWSTR pszDataName, _In_reads_bytes_(cbInputData) PBYTE pInputData, _In_ DWORD cbInputData, _Out_writes_bytes_(cbOutputData) PBYTE pOutputData, _In_ DWORD cbOutputData, _Out_ PDWORD pcbOutputNeeded)
struct _MONITORREG * PMONITORREG
BOOL WINAPI SpoolerFindClosePrinterChangeNotification(_In_ HANDLE hPrinter)
struct _MONITOR2 * PMONITOR2
struct _MONITORREG MONITORREG
BOOL WINAPI RouterFreePrinterNotifyInfo(_In_opt_ PPRINTER_NOTIFY_INFO pInfo)
BOOL WINAPI ClosePrintProcessor(_Inout_ HANDLE hPrintProcessor)
BOOL WINAPI SpoolerFindNextPrinterChangeNotification(_In_ HANDLE hPrinter, _Out_ LPDWORD pfdwChange, _In_opt_ LPVOID pPrinterNotifyOptions, _Inout_opt_ LPVOID *ppPrinterNotifyInfo)
struct _SPLCLIENT_INFO_1 * LPSPLCLIENT_INFO_1
BOOL WINAPI AppendPrinterNotifyInfoData(_In_ PPRINTER_NOTIFY_INFO pInfoDest, _In_opt_ PPRINTER_NOTIFY_INFO_DATA pInfoDataSrc, _In_ DWORD fdwFlags)
BOOL WINAPI PlayGdiScriptOnPrinterIC(_In_ HANDLE hPrinterIC, _In_reads_bytes_(cIn) LPBYTE pIn, _In_ DWORD cIn, _Out_writes_bytes_(cOut) LPBYTE pOut, _In_ DWORD cOut, _In_ DWORD ul)
BOOL WINAPI ImpersonatePrinterClient(_In_ HANDLE hToken)
BOOL WINAPI ClosePrinterToken(HANDLE hToken)
_In_ HWND _In_ PCWSTR _Out_opt_ PWSTR * ppszPortNameOut
BOOL WINAPI ConfigurePortUI(_In_ PCWSTR pszServer, _In_ HWND hWnd, _In_ PCWSTR pszPortName)
struct _PRINTPROCESSOROPENDATA * PPRINTPROCESSOROPENDATA
struct _MONITOR2 * LPMONITOR2
BOOL WINAPI ReadPort(_In_ HANDLE hPort, _Out_writes_bytes_(cbBuffer) LPBYTE pBuffer, _In_ DWORD cbBuffer, _Out_ LPDWORD pcbRead)
struct _MONITOR2 MONITOR2
BOOL WINAPI ReplyPrinterChangeNotification(_In_ HANDLE hNotify, _In_ DWORD fdwFlags, _Out_opt_ PDWORD pdwResult, _In_opt_ PVOID pPrinterNotifyInfo)
struct _SPLCLIENT_INFO_3 * LPSPLCLIENT_INFO_3
BOOL WINAPI DevQueryPrint(_In_ HANDLE hPrinter, _In_ LPDEVMODEW pDevMode, _Out_ DWORD *pResID)
_NOTIFICATION_CALLBACK_COMMANDS
@ NOTIFICATION_COMMAND_NOTIFY
@ NOTIFICATION_COMMAND_CONTEXT_RELEASE
@ NOTIFICATION_COMMAND_CONTEXT_ACQUIRE
PBIDI_RESPONSE_CONTAINER WINAPI RouterAllocBidiResponseContainer(_In_ DWORD Count)
BOOL(CALLBACK * ROUTER_NOTIFY_CALLBACK)(_In_ DWORD dwCommand, _In_ PVOID pContext, _In_ DWORD dwColor, _In_ PPRINTER_NOTIFY_INFO pNofityInfo, _In_ DWORD fdwFlags, _Out_ PDWORD pdwResult)
struct _PRINTPROCESSOROPENDATA * LPPRINTPROCESSOROPENDATA
DWORD WINAPI GetPrintProcessorCapabilities(_In_ LPTSTR pValueName, _In_ DWORD dwAttributes, _Out_writes_bytes_(nSize) LPBYTE pData, _In_ DWORD nSize, _Out_ LPDWORD pcbNeeded)
BOOL WINAPI SetPrinterToken(HANDLE hToken)
LPMONITOREX WINAPI InitializePrintMonitor(_In_ LPWSTR pRegistryRoot)
BOOL WINAPI XcvClosePort(_In_ HANDLE hXcv)
SPLCLIENT_INFO_2_W2K * LPSPLCLIENT_INFO_2
struct _SPLCLIENT_INFO_1 SPLCLIENT_INFO_1
PVOID WINAPI RouterAllocBidiMem(_In_ size_t NumBytes)
_NOTIFICATION_CONFIG_FLAGS
@ NOTIFICATION_CONFIG_REGISTER_CALLBACK
@ NOTIFICATION_CONFIG_CREATE_EVENT
@ NOTIFICATION_CONFIG_EVENT_TRIGGER
@ NOTIFICATION_CONFIG_ASYNC_CHANNEL
BOOL WINAPI SplDeleteSpoolerPortEnd(_In_ PCWSTR pName, _In_ BOOL bDeletePort)
BOOL WINAPI SplPromptUIInUsersSession(_In_ HANDLE hPrinter, _In_ DWORD JobId, _In_ PSHOWUIPARAMS pUIParams, _Out_ DWORD *pResponse)
BOOL WINAPI PrintDocumentOnPrintProcessor(_In_ HANDLE hPrintProcessor, _In_ LPWSTR pDocumentName)
struct _ATTRIBUTE_INFO_4 ATTRIBUTE_INFO_4
struct _MONITOREX * LPMONITOREX
struct _ATTRIBUTE_INFO_3 * PATTRIBUTE_INFO_3
SPLCLIENT_INFO_2_W2K * PSPLCLIENT_INFO_2
BOOL WINAPI WritePort(_In_ HANDLE hPort, _In_reads_bytes_(cbBuf) LPBYTE pBuffer, _In_ DWORD cbBuf, _Out_ LPDWORD pcbWritten)
BOOL WINAPI OpenPort(_In_ LPWSTR pName, _Out_ PHANDLE pHandle)
enum _NOTIFICATION_CALLBACK_COMMANDS NOTIFICATION_CALLBACK_COMMANDS
BOOL WINAPI SpoolerRefreshPrinterChangeNotification(_In_ HANDLE hPrinter, _In_ DWORD dwColor, _In_ PPRINTER_NOTIFY_OPTIONS pOptions, _Inout_opt_ PPRINTER_NOTIFY_INFO *ppInfo)
BOOL WINAPI ClosePort(_In_ HANDLE hPort)
BOOL WINAPI InstallPrintProcessor(HWND hWnd)
struct _NOTIFICATION_CONFIG_1 NOTIFICATION_CONFIG_1
enum _NOTIFICATION_CONFIG_FLAGS NOTIFICATION_CONFIG_FLAGS
DWORD WINAPI SplIsSessionZero(_In_ HANDLE hPrinter, _In_ DWORD JobId, _Out_ BOOL *pIsSessionZero)
BOOL WINAPI SplDeleteSpoolerPortStart(_In_ PCWSTR pPortName)
BOOL WINAPI ProvidorFindFirstPrinterChangeNotification(_In_ HANDLE hPrinter, _In_ DWORD fdwFlags, _In_ DWORD fdwOptions, _In_ HANDLE hNotify, _In_opt_ PVOID pvReserved0, _Out_opt_ PVOID pvReserved1)
struct _SPLCLIENT_INFO_2_V1 SPLCLIENT_INFO_2_W2K
struct _NOTIFICATION_CONFIG_1 * PNOTIFICATION_CONFIG_1
struct _SPLCLIENT_INFO_3 * PSPLCLIENT_INFO_3
BOOL WINAPI DeletePrinterIC(_In_ HANDLE hPrinterIC)
BOOL WINAPI GetJobAttributesEx(_In_ LPWSTR pPrinterName, _In_ LPDEVMODEW pDevmode, _In_ DWORD dwLevel, _Out_writes_bytes_(nSize) LPBYTE pAttributeInfo, _In_ DWORD nSize, _In_ DWORD dwFlags)
BOOL WINAPI InitializeMonitorEx(_In_ LPWSTR pRegistryRoot, _Out_ LPMONITOR pMonitor)
SPLCLIENT_INFO_2_W2K SPLCLIENT_INFO_2
struct _SPLCLIENT_INFO_1 * PSPLCLIENT_INFO_1
MESSAGEBOX_PARAMS MessageBoxParams
DWORD dwJobNumberOfPagesPerSide
DWORD dwDrvNumberOfPagesPerSide
DWORD dwColorOptimization
DWORD dwJobPageOrderFlags
DWORD dwDrvNumberOfCopies
DWORD dwDrvPageOrderFlags
DWORD dwJobNumberOfCopies
DWORD dwDrvNumberOfPagesPerSide
DWORD dwJobPageOrderFlags
DWORD dwJobNumberOfPagesPerSide
DWORD dwJobNumberOfCopies
DWORD dwDrvNumberOfCopies
DWORD dwColorOptimization
DWORD dwDrvPageOrderFlags
_In_opt_ LPWSTR _In_ DWORD _In_ DWORD _Out_ LPDWORD _Out_ LPDWORD pcReturned
_In_ DWORD _In_ LPCWSTR _In_ PBIDI_REQUEST_CONTAINER _Outptr_ PBIDI_RESPONSE_CONTAINER * ppResData
_In_ DWORD _In_ LPCWSTR _In_ PBIDI_REQUEST_CONTAINER pReqData
_In_ HANDLE _In_ LPWSTR _In_ LPWSTR pPrinterName
DWORD(WINAPI *pfnNotifyUsedPorts)(_In_ HANDLE hMonitor
_In_ HANDLE _In_ LPWSTR _In_ LPWSTR _Out_ PHANDLE _In_ struct _MONITOR2 * pMonitor2
_In_opt_ LPWSTR _In_ DWORD _In_ DWORD cbBuf
DWORD(WINAPI *pfnSendRecvBidiDataFromPort)(_In_ HANDLE hPort
_In_opt_ LPWSTR _In_ DWORD _In_ DWORD _Out_ LPDWORD pcbNeeded
BOOL(WINAPI *pfnOpenPortEx)(_In_ HANDLE hMonitor
_In_ HANDLE _In_ LPWSTR pPortName
_In_ LPWSTR _In_ DWORD _In_ DWORD Level
_In_opt_ LPWSTR _In_ DWORD _Out_writes_bytes_to_opt_(cbBuf, *pcbNeeded) LPBYTE pPorts
BOOL(WINAPI *pfnStartDocPort)(_In_ HANDLE hPort
_In_opt_ LPWSTR _In_ DWORD Level
BOOL(WINAPI *pfnEnumPorts)(_In_ HANDLE hMonitor
_In_ LPWSTR _In_ DWORD _In_ DWORD _In_reads_(_Inexpressible_(0)) LPBYTE pDocInfo)
_In_ HANDLE _In_ LPWSTR _In_ LPWSTR _Out_ PHANDLE pHandle
BOOL(WINAPI *pfnOpenPort)(_In_ HANDLE hMonitor
_In_ DWORD _In_reads_(cPorts) PCWSTR *ppszPorts)
_In_ DWORD _In_ LPCWSTR pAction
_In_ LPWSTR _Out_ PHANDLE pHandle
_In_ LPWSTR _In_ DWORD JobId
DWORD(WINAPI *pfnNotifyUnusedPorts)(_In_ HANDLE hMonitor
HKEYMONITOR hckRegistryRoot
_In_ LPCWSTR _Out_opt_ PDWORD _Out_writes_bytes_to_opt_ pcbData PBYTE _Inout_ PDWORD _In_ HANDLE hSpooler
_In_ DWORD _Inout_updates_to_ pcbValue LPWSTR pszValue
_In_ LPCWSTR _In_ DWORD _In_ REGSAM _In_opt_ PSECURITY_ATTRIBUTES _Out_ PHANDLE phckResult
_In_ DWORD _Inout_updates_to_ pcchName LPWSTR pszName
_In_ DWORD _Inout_updates_to_ pcchName LPWSTR _Inout_ PDWORD _Out_opt_ PFILETIME _In_ HANDLE hSpooler
LONG(WINAPI *fpDeleteValue)(_In_ HANDLE hcKey
_Out_opt_ PDWORD pcSubKeys
LONG(WINAPI *fpDeleteKey)(_In_ HANDLE hcKey
_In_ LPCWSTR _In_ DWORD _In_ REGSAM _In_opt_ PSECURITY_ATTRIBUTES pSecurityAttributes
LONG(WINAPI *fpCreateKey)(_In_ HANDLE hcKey
_In_ LPCWSTR _Out_opt_ PDWORD _Out_writes_bytes_to_opt_ pcbData PBYTE _Inout_ PDWORD pcbData
_In_ LPCWSTR _In_ DWORD _In_ REGSAM _In_opt_ PSECURITY_ATTRIBUTES _Out_ PHANDLE _Out_opt_ PDWORD _In_ HANDLE hSpooler
_Out_opt_ PDWORD _Out_opt_ PDWORD _Out_opt_ PDWORD _Out_opt_ PDWORD _Out_opt_ PDWORD _Out_opt_ PDWORD pcbSecurityDescriptor
_Out_opt_ PDWORD _Out_opt_ PDWORD pcbKey
_In_ LPCWSTR _In_ DWORD dwOptions
_In_ LPCWSTR _Out_opt_ PDWORD _Out_writes_bytes_to_opt_ pcbData PBYTE pData
_In_ LPCWSTR _In_ DWORD _In_ DWORD cbData
_Out_opt_ PDWORD _Out_opt_ PDWORD _Out_opt_ PDWORD pcValues
_Out_opt_ PDWORD _Out_opt_ PDWORD _Out_opt_ PDWORD _Out_opt_ PDWORD _Out_opt_ PDWORD _Out_opt_ PDWORD _Out_opt_ PFILETIME _In_ HANDLE hSpooler
_In_ LPCWSTR _In_ REGSAM _Out_ PHANDLE _In_ HANDLE hSpooler
_In_ DWORD _Inout_updates_to_ pcbValue LPWSTR _Inout_ PDWORD pcbValue
_In_ LPCWSTR _In_ REGSAM _Out_ PHANDLE phkResult
_In_ LPCWSTR _In_ DWORD _In_reads_bytes_(cbData) const BYTE *pData
_In_ LPCWSTR _In_ DWORD dwType
_In_ DWORD _Inout_updates_to_ pcchName LPWSTR _Inout_ PDWORD pcchName
_In_ DWORD _Inout_updates_to_ pcbValue LPWSTR _Inout_ PDWORD _Out_opt_ PDWORD pType
LONG(WINAPI *fpEnumValue)(_In_ HANDLE hcKey
_Out_opt_ PDWORD _Out_opt_ PDWORD _Out_opt_ PDWORD _Out_opt_ PDWORD _Out_opt_ PDWORD _Out_opt_ PDWORD _Out_opt_ PFILETIME pftLastWriteTime
_In_ DWORD _Inout_updates_to_ pcbValue LPWSTR _Inout_ PDWORD _Out_opt_ PDWORD _Out_writes_bytes_to_opt_ pcbData PBYTE pData
_In_ LPCWSTR _In_ DWORD _In_ REGSAM samDesired
_Out_opt_ PDWORD _Out_opt_ PDWORD _Out_opt_ PDWORD _Out_opt_ PDWORD pcbValue
_In_ DWORD _Inout_updates_to_ pcchName LPWSTR _Inout_ PDWORD _Out_opt_ PFILETIME pftLastWriteTime
LONG(WINAPI *fpQueryValue)(_In_ HANDLE hcKey
_In_ LPCWSTR _In_ REGSAM samDesired
LONG(WINAPI *fpEnumKey)(_In_ HANDLE hcKey
_In_ LPCWSTR _In_ DWORD _In_ REGSAM _In_opt_ PSECURITY_ATTRIBUTES _Out_ PHANDLE _Out_opt_ PDWORD pdwDisposition
_In_ DWORD _Inout_updates_to_ pcbValue LPWSTR _Inout_ PDWORD _Out_opt_ PDWORD _Out_writes_bytes_to_opt_ pcbData PBYTE _Inout_ PDWORD _In_ HANDLE hSpooler
LONG(WINAPI *fpSetValue)(_In_ HANDLE hcKey
_In_ LPCWSTR _In_ DWORD _In_ DWORD _In_ HANDLE hSpooler
_In_ LPCWSTR _Out_opt_ PDWORD pType
_Out_opt_ PDWORD _Out_opt_ PDWORD _Out_opt_ PDWORD _Out_opt_ PDWORD _Out_opt_ PDWORD pcbData
LONG(WINAPI *fpQueryInfoKey)(_In_ HANDLE hcKey
LONG(WINAPI *fpOpenKey)(_In_ HANDLE hcKey
_In_ DWORD _Inout_updates_to_ pcbValue LPWSTR _Inout_ PDWORD _Out_opt_ PDWORD _Out_writes_bytes_to_opt_ pcbData PBYTE _Inout_ PDWORD pcbData
BOOL(WINAPI *pfnAddPortUI)(_At_(return
_Success_(return !=0)) _In_opt_ PCWSTR pszServer
BOOL(WINAPI *pfnOpenPort)(_In_ LPWSTR pName
_In_ DWORD _In_ DWORD _Out_ LPDWORD pcbNeeded
_In_ LPWSTR _Out_ PHANDLE pHandle
BOOL(WINAPI *pfnOpenPortEx)(_In_ LPWSTR pPortName
_In_ DWORD _In_ DWORD _Out_ LPDWORD _Out_ LPDWORD pcReturned
BOOL(WINAPI *pfnStartDocPort)(_In_ HANDLE hPort
_In_ LPWSTR _In_ DWORD _In_ DWORD Level
_In_ DWORD _Out_writes_bytes_to_opt_(cbBuf, *pcbNeeded) LPBYTE pPorts
_In_ LPWSTR _Out_ PHANDLE _In_ struct _MONITOR * pMonitor
_In_ DWORD _In_ DWORD cbBuf
_In_ LPWSTR _In_ DWORD _In_ DWORD _In_reads_(_Inexpressible_(0)) LPBYTE pDocInfo)
_In_ LPWSTR _In_ DWORD JobId
BOOL(WINAPI *pfnEnumPorts)(_In_opt_ LPWSTR pName
ROUTER_NOTIFY_CALLBACK pfnNotifyCallback
_In_opt_ LPWSTR _In_ DWORD _In_ DWORD _Out_ LPDWORD _Out_ LPDWORD lpdwReturned
_In_opt_ LPWSTR _In_ LPWSTR pDriverName
_In_ DWORD _In_ HWND _In_ LPWSTR pText
_In_ DWORD _In_ DWORD _Out_ LPDWORD _Out_opt_ LPDWORD _In_ DWORD _Out_ LPDWORD pcbData
_In_ HWND _In_ LPWSTR pMonitorName
_In_opt_ LPWSTR _In_ LPWSTR _In_ DWORD dwDeleteFlag
_In_ LPCWSTR _In_ DWORD _In_ DWORD _Out_ PDWORD _Out_ PDWORD pdwStatus
_In_opt_ LPWSTR _In_ LPWSTR pPathName
_In_ LPCWSTR pPrinterName
_In_ LPCWSTR _In_ LPCWSTR pPrintServer
_In_ LPCWSTR _Out_ PHANDLE _In_ LPCWSTR pszName
BOOL(WINAPI *fpOpenPrinter)(_In_opt_ PWSTR lpPrinterName
_In_ DWORD _In_ DWORD _In_reads_opt_(_Inexpressible_(0)) LPBYTE pJob
_In_ LPCWSTR _In_ LPBIDI_REQUEST_CONTAINER pReqData
_In_opt_ LPWSTR _In_ DWORD _In_ DWORD _Out_ LPDWORD lpdwNeeded
_In_ DWORD _In_ DWORD _In_ DWORD cbBuf
_In_ LPCWSTR _In_ DWORD cbInputData
_In_ DWORD _Out_ LPDWORD _In_ DWORD cSleep
_In_ LARGE_INTEGER _Out_ PLARGE_INTEGER _In_ DWORD dwMoveMethod
_In_opt_ LPWSTR _In_ LPWSTR _In_ LPWSTR pPrintProcessorName
_In_opt_ LPWSTR _In_ DWORD _In_ DWORD _Out_ LPDWORD _In_ DWORD _In_ DWORD _Out_ PDWORD pdwServerMajorVersion
_In_ DWORD _In_ DWORD ClientInfoLevel
_In_opt_ LPWSTR _In_ DWORD _In_ DWORD _Out_ LPDWORD _In_ DWORD _In_ DWORD _Out_ PDWORD _Out_ PDWORD pdwServerMinorVersion
_In_ LPCWSTR _In_ DWORD _Out_ LPDWORD _Out_ LPDWORD pnEnumValues
_In_opt_ LPWSTR pEnvironment
_In_opt_ LPWSTR _In_ DWORD _In_ DWORD _Out_ LPDWORD _Out_ LPDWORD pcbReturned
_In_ DWORD _In_ DWORD dwFileCopyFlags
_In_ DWORD _In_opt_ PVOID _In_ PVOID pPrinterNotifyInfo
_In_ LPWSTR _In_ DWORD _In_ DWORD cbData
_In_ DWORD _In_ DWORD _In_ DWORD ul
_In_ DWORD _In_ DWORD _In_ DWORD _In_ DWORD _Out_ LPDWORD _Out_ LPDWORD pcReturned
_In_ LPCWSTR _In_ DWORD _Out_ LPDWORD pcbSubkey
_In_ LPCWSTR _In_ DWORD _Out_ LPDWORD pcbEnumValues
_In_opt_ LPDEVMODEW pDevMode
_In_ LARGE_INTEGER _Out_ PLARGE_INTEGER _In_ DWORD _In_ BOOL bWrite
_In_ LPCWSTR _In_ DWORD _In_ DWORD cbOutputData
_In_opt_ LPWSTR _In_ DWORD _In_ DWORD _Out_ LPDWORD _In_ DWORD _In_ DWORD dwClientMinorVersion
_In_ DWORD _In_ DWORD cOut
_In_ DWORD _In_ DWORD Level
_In_opt_ LPWSTR _In_ DWORD _In_ DWORD _Out_ LPDWORD _In_ DWORD dwClientMajorVersion
_In_ DWORD _Out_ LPDWORD pcWritten
BOOL(WINAPI *fpSetJob)(_In_ HANDLE hPrinter
_In_ DWORD _In_opt_ PVOID pvReserved
_In_ LPCWSTR _Out_ PHANDLE phSpooler
_Outptr_result_maybenull_ LPWSTR _Out_ LPHANDLE _In_ HANDLE hSpoolerProcess
_In_ LPCWSTR _In_ LPCWSTR _In_ LPCWSTR pProvider
_In_ LPCWSTR _Out_ PHANDLE _In_ LPCWSTR _In_ LPCWSTR pszAddress
_In_ LARGE_INTEGER liDistanceToMove
_In_ DWORD _In_ LPWSTR lpMonitorName
_In_opt_ LPWSTR _In_ DWORD dwLevel
_Out_ HANDLE _In_opt_ PPRINTER_DEFAULTSW pDefault
_In_ DWORD _In_ DWORD _Out_ LPDWORD pcbValueName
_In_ DWORD _In_ DWORD NoJobs
_In_ HWND _In_ LPWSTR pPortName
DWORD VOID * pvDriverInfCatInfo
_Outptr_result_maybenull_ LPWSTR _Out_ LPHANDLE _In_ HANDLE _In_ HANDLE hAppProcess
_In_ DWORD _In_ HWND _In_ LPWSTR _In_ LPWSTR _In_ DWORD dwType
_In_ DWORD _Out_ LPDWORD pNoBytesRead
_In_ LPCWSTR _In_ DWORD _In_ DWORD _Out_ PDWORD pcbOutputNeeded
_In_ DWORD _In_ DWORD cbValueName
_In_ LPWSTR _Out_opt_ LPDWORD pType
_In_opt_ LPWSTR _In_ LPWSTR _In_ DWORD _In_ DWORD dwVersionNum
_In_ LPCWSTR _In_ DWORD cbSubkey
_In_ LPWSTR _Out_opt_ LPDWORD _In_ DWORD nSize
_In_ LARGE_INTEGER _Out_ PLARGE_INTEGER pliNewPointer
_In_ LPCWSTR _In_ DWORD cbEnumValues
DWORD VOID DWORD dwCatalogCopyFlags
_Outptr_result_maybenull_ LPWSTR _Out_ LPHANDLE phFile
DWORD DWORD LPVOID pPrinterNotifyOptions
_In_ LPCWSTR _In_ LPBIDI_REQUEST_CONTAINER _Outptr_ LPBIDI_RESPONSE_CONTAINER * ppResData
_Outptr_result_maybenull_ LPWSTR * pSpoolDir
_In_ DWORD _In_ HWND _In_ LPWSTR _In_ LPWSTR pCaption
WORD wProcessorArchitecture
WORD wProcessorArchitecture
TW_UINT32 TW_UINT16 TW_UINT16 TW_MEMREF pData
PMONITORUI WINAPI InitializePrintMonitorUI(void)
_In_opt_ LPSTR _In_opt_ LPSTR _In_ DWORD _In_ DWORD _Out_opt_ PHANDLE phToken
*nSize LPSTR _Inout_ LPDWORD nSize
_In_ PCCERT_CONTEXT _In_ DWORD dwFlags
_In_ DWORD _Out_writes_bytes_to_opt_ pcbData void _Inout_ DWORD * pcbData
_In_ DWORD _Out_ PDWORD pcbNeeded
_Reserved_ PVOID Reserved
_IRQL_requires_same_ typedef _In_ ULONG _In_ UCHAR Level
_Must_inspect_result_ _In_ ULONG Flags
_In_ PSECURITY_SUBJECT_CONTEXT _In_ BOOLEAN _In_ ACCESS_MASK _In_ ACCESS_MASK _Outptr_opt_ PPRIVILEGE_SET _In_ PGENERIC_MAPPING _In_ KPROCESSOR_MODE _Out_ PACCESS_MASK GrantedAccess