ReactOS  0.4.12-dev-945-g5a2911d
winsplp.h File Reference
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  _PRINTER_NOTIFY_INIT
 
struct  _SPLCLIENT_INFO_1
 
struct  _SPLCLIENT_INFO_2_V1
 
struct  _SPLCLIENT_INFO_2_V2
 
struct  _SPLCLIENT_INFO_2_V3
 
struct  _PRINTPROVIDOR
 
struct  _PRINTPROCESSOROPENDATA
 
struct  _MONITORREG
 
struct  _MONITORINIT
 
struct  _MONITOR
 
struct  _MONITOREX
 
struct  _MONITOR2
 
struct  _MONITORUI
 
struct  MESSAGEBOX_PARAMS
 
struct  SHOWUIPARAMS
 
struct  _ATTRIBUTE_INFO_3
 
struct  _NOTIFICATION_CONFIG_1
 
struct  _SPLCLIENT_INFO_3
 
struct  _ATTRIBUTE_INFO_4
 

Macros

#define _WINSPLP_
 
#define HKEYMONITOR   HANDLE
 
#define PRINTER_NOTIFY_STATUS_ENDPOINT   1
 
#define PRINTER_NOTIFY_STATUS_POLL   2
 
#define PRINTER_NOTIFY_STATUS_INFO   4
 
#define ROUTER_UNKNOWN   0
 
#define ROUTER_SUCCESS   1
 
#define ROUTER_STOP_ROUTING   2
 
#define MONITOR2_SIZE_WIN2K   (sizeof(DWORD) + (sizeof(PVOID)*18))
 
#define COPYFILE_EVENT_SET_PRINTER_DATAEX   1
 
#define COPYFILE_EVENT_DELETE_PRINTER   2
 
#define COPYFILE_EVENT_ADD_PRINTER_CONNECTION   3
 
#define COPYFILE_EVENT_DELETE_PRINTER_CONNECTION   4
 
#define COPYFILE_EVENT_FILES_CHANGED   5
 
#define COPYFILE_FLAG_CLIENT_SPOOLER   0x00000001
 
#define COPYFILE_FLAG_SERVER_SPOOLER   0x00000002
 
#define PRINTER_NOTIFY_INFO_DATA_COMPACT   1
 
#define __ATTRIBUTE_INFO_3__
 
#define __ATTRIBUTE_INFO_4__
 
#define REVERSE_PAGES_FOR_REVERSE_DUPLEX   (0x00000001)
 
#define DONT_SEND_EXTRA_PAGES_FOR_DUPLEX   (0x00000001 << 1)
 
#define RIGHT_THEN_DOWN   (0x00000001)
 
#define DOWN_THEN_RIGHT   (0x00000001 << 1)
 
#define LEFT_THEN_DOWN   (0x00000001 << 2)
 
#define DOWN_THEN_LEFT   (0x00000001 << 3)
 
#define BOOKLET_EDGE_LEFT   0x00000000
 
#define BOOKLET_EDGE_RIGHT   0x00000001
 
#define FILL_WITH_DEFAULTS   0x1
 

Typedefs

typedef struct _PRINTER_NOTIFY_INIT PRINTER_NOTIFY_INIT
 
typedef struct _PRINTER_NOTIFY_INITLPPRINTER_NOTIFY_INIT
 
typedef struct _PRINTER_NOTIFY_INITPPRINTER_NOTIFY_INIT
 
typedef struct _SPLCLIENT_INFO_1 SPLCLIENT_INFO_1
 
typedef struct _SPLCLIENT_INFO_1LPSPLCLIENT_INFO_1
 
typedef struct _SPLCLIENT_INFO_1PSPLCLIENT_INFO_1
 
typedef struct _SPLCLIENT_INFO_2_V1 SPLCLIENT_INFO_2_W2K
 
typedef struct _SPLCLIENT_INFO_2_V2 SPLCLIENT_INFO_2_WINXP
 
typedef struct _SPLCLIENT_INFO_2_V3 SPLCLIENT_INFO_2_LONGHORN
 
typedef struct _PRINTPROVIDOR PRINTPROVIDOR
 
typedef struct _PRINTPROVIDORLPPRINTPROVIDOR
 
typedef struct _PRINTPROCESSOROPENDATA PRINTPROCESSOROPENDATA
 
typedef struct _PRINTPROCESSOROPENDATALPPRINTPROCESSOROPENDATA
 
typedef struct _PRINTPROCESSOROPENDATAPPRINTPROCESSOROPENDATA
 
typedef struct _MONITORREG MONITORREG
 
typedef struct _MONITORREGPMONITORREG
 
typedef struct _MONITORINIT MONITORINIT
 
typedef struct _MONITORINITPMONITORINIT
 
typedef struct _MONITOR MONITOR
 
typedef struct _MONITORLPMONITOR
 
typedef struct _MONITOREX MONITOREX
 
typedef struct _MONITOREXLPMONITOREX
 
typedef struct _MONITOR2 MONITOR2
 
typedef struct _MONITOR2LPMONITOR2
 
typedef struct _MONITOR2PMONITOR2
 
typedef struct _MONITORUI MONITORUI
 
typedef struct _MONITORUIPMONITORUI
 
typedef struct MESSAGEBOX_PARAMSPMESSAGEBOX_PARAMS
 
typedef struct SHOWUIPARAMSPSHOWUIPARAMS
 
typedef struct _ATTRIBUTE_INFO_3 ATTRIBUTE_INFO_3
 
typedef struct _ATTRIBUTE_INFO_3PATTRIBUTE_INFO_3
 
typedef BOOL(CALLBACKROUTER_NOTIFY_CALLBACK) (_In_ DWORD dwCommand, _In_ PVOID pContext, _In_ DWORD dwColor, _In_ PPRINTER_NOTIFY_INFO pNofityInfo, _In_ DWORD fdwFlags, _Out_ PDWORD pdwResult)
 
typedef enum _NOTIFICATION_CALLBACK_COMMANDS NOTIFICATION_CALLBACK_COMMANDS
 
typedef struct _NOTIFICATION_CONFIG_1 NOTIFICATION_CONFIG_1
 
typedef struct _NOTIFICATION_CONFIG_1PNOTIFICATION_CONFIG_1
 
typedef enum _NOTIFICATION_CONFIG_FLAGS NOTIFICATION_CONFIG_FLAGS
 
typedef struct _SPLCLIENT_INFO_3 SPLCLIENT_INFO_3
 
typedef struct _SPLCLIENT_INFO_3PSPLCLIENT_INFO_3
 
typedef struct _SPLCLIENT_INFO_3LPSPLCLIENT_INFO_3
 
typedef struct _ATTRIBUTE_INFO_4 ATTRIBUTE_INFO_4
 
typedef struct _ATTRIBUTE_INFO_4PATTRIBUTE_INFO_4
 
typedef SPLCLIENT_INFO_2_W2K SPLCLIENT_INFO_2
 
typedef SPLCLIENT_INFO_2_W2KPSPLCLIENT_INFO_2
 
typedef SPLCLIENT_INFO_2_W2KLPSPLCLIENT_INFO_2
 

Enumerations

enum  UI_TYPE { kMessageBox = 0 }
 
enum  _NOTIFICATION_CALLBACK_COMMANDS { NOTIFICATION_COMMAND_NOTIFY, NOTIFICATION_COMMAND_CONTEXT_ACQUIRE, NOTIFICATION_COMMAND_CONTEXT_RELEASE }
 
enum  _NOTIFICATION_CONFIG_FLAGS { NOTIFICATION_CONFIG_CREATE_EVENT = 1 << 0, NOTIFICATION_CONFIG_REGISTER_CALLBACK = 1 << 1, NOTIFICATION_CONFIG_EVENT_TRIGGER = 1 << 2, NOTIFICATION_CONFIG_ASYNC_CHANNEL = 1 << 3 }
 

Functions

BOOL WINAPI InitializePrintProvidor (_Out_writes_bytes_(cbPrintProvidor) LPPRINTPROVIDOR pPrintProvidor, _In_ DWORD cbPrintProvidor, _In_opt_ LPWSTR pFullRegistryPath)
 
HANDLE WINAPI OpenPrintProcessor (_In_ LPWSTR pPrinterName, _In_ PPRINTPROCESSOROPENDATA pPrintProcessorOpenData)
 
BOOL WINAPI PrintDocumentOnPrintProcessor (_In_ HANDLE hPrintProcessor, _In_ LPWSTR pDocumentName)
 
BOOL WINAPI ClosePrintProcessor (_Inout_ HANDLE hPrintProcessor)
 
BOOL WINAPI ControlPrintProcessor (_In_ HANDLE hPrintProcessor, _In_ DWORD Command)
 
DWORD WINAPI GetPrintProcessorCapabilities (_In_ LPTSTR pValueName, _In_ DWORD dwAttributes, _Out_writes_bytes_(nSize) LPBYTE pData, _In_ DWORD nSize, _Out_ LPDWORD pcbNeeded)
 
BOOL WINAPI InitializeMonitor (_In_ LPWSTR pRegistryRoot)
 
BOOL WINAPI OpenPort (_In_ LPWSTR pName, _Out_ PHANDLE pHandle)
 
BOOL WINAPI WritePort (_In_ HANDLE hPort, _In_reads_bytes_(cbBuf) LPBYTE pBuffer, _In_ DWORD cbBuf, _Out_ LPDWORD pcbWritten)
 
BOOL WINAPI ReadPort (_In_ HANDLE hPort, _Out_writes_bytes_(cbBuffer) LPBYTE pBuffer, _In_ DWORD cbBuffer, _Out_ LPDWORD pcbRead)
 
BOOL WINAPI ClosePort (_In_ HANDLE hPort)
 
BOOL WINAPI XcvOpenPort (_In_ LPCWSTR pszObject, _In_ ACCESS_MASK GrantedAccess, _Out_ PHANDLE phXcv)
 
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)
 
BOOL WINAPI XcvClosePort (_In_ HANDLE hXcv)
 
 _Success_ (return !=0) BOOL WINAPI AddPortUI(_In_opt_ PCWSTR pszServer
 
BOOL WINAPI ConfigurePortUI (_In_ PCWSTR pszServer, _In_ HWND hWnd, _In_ PCWSTR pszPortName)
 
BOOL WINAPI DeletePortUI (_In_ PCWSTR pszServer, _In_ HWND hWnd, _In_ PCWSTR pszPortName)
 
BOOL WINAPI SplDeleteSpoolerPortStart (_In_ PCWSTR pPortName)
 
BOOL WINAPI SplDeleteSpoolerPortEnd (_In_ PCWSTR pName, _In_ BOOL bDeletePort)
 
BOOL WINAPI SpoolerCopyFileEvent (_In_ LPWSTR pszPrinterName, _In_ LPWSTR pszKey, _In_ DWORD dwCopyFileEvent)
 
DWORD WINAPI GenerateCopyFilePaths (_In_ LPCWSTR pszPrinterName, _In_ LPCWSTR pszDirectory, _In_ LPBYTE pSplClientInfo, _In_ DWORD dwLevel, _Inout_updates_(*pcchSourceDirSize) LPWSTR pszSourceDir, _Inout_ LPDWORD pcchSourceDirSize, _Inout_updates_(*pcchTargetDirSize) LPWSTR pszTargetDir, _Inout_ LPDWORD pcchTargetDirSize, _In_ DWORD dwFlags)
 
HANDLE WINAPI CreatePrinterIC (_In_ HANDLE hPrinter, _In_opt_ LPDEVMODEW pDevMode)
 
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 DeletePrinterIC (_In_ HANDLE hPrinterIC)
 
BOOL WINAPI DevQueryPrint (_In_ HANDLE hPrinter, _In_ LPDEVMODEW pDevMode, _Out_ DWORD *pResID)
 
HANDLE WINAPI RevertToPrinterSelf (VOID)
 
BOOL WINAPI ImpersonatePrinterClient (_In_ HANDLE hToken)
 
BOOL WINAPI ReplyPrinterChangeNotification (_In_ HANDLE hNotify, _In_ DWORD fdwFlags, _Out_opt_ PDWORD pdwResult, _In_opt_ PVOID pPrinterNotifyInfo)
 
BOOL WINAPI ReplyPrinterChangeNotificationEx (_In_ HANDLE hNotify, _In_ DWORD dwColor, _In_ DWORD fdwFlags, _Out_ PDWORD pdwResult, _In_ PVOID pPrinterNotifyInfo)
 
BOOL WINAPI PartialReplyPrinterChangeNotification (_In_ HANDLE hNotify, _In_opt_ PPRINTER_NOTIFY_INFO_DATA pInfoDataSrc)
 
PPRINTER_NOTIFY_INFO WINAPI RouterAllocPrinterNotifyInfo (_In_ DWORD cPrinterNotifyInfoData)
 
BOOL WINAPI RouterFreePrinterNotifyInfo (_In_opt_ PPRINTER_NOTIFY_INFO pInfo)
 
BOOL WINAPI AppendPrinterNotifyInfoData (_In_ PPRINTER_NOTIFY_INFO pInfoDest, _In_opt_ PPRINTER_NOTIFY_INFO_DATA pInfoDataSrc, _In_ DWORD fdwFlags)
 
DWORD WINAPI CallRouterFindFirstPrinterChangeNotification (_In_ HANDLE hPrinter, _In_ DWORD fdwFlags, _In_ DWORD fdwOptions, _In_ HANDLE hNotify, _In_ PPRINTER_NOTIFY_OPTIONS pPrinterNotifyOptions)
 
BOOL WINAPI ProvidorFindFirstPrinterChangeNotification (_In_ HANDLE hPrinter, _In_ DWORD fdwFlags, _In_ DWORD fdwOptions, _In_ HANDLE hNotify, _In_opt_ PVOID pvReserved0, _Out_opt_ PVOID pvReserved1)
 
BOOL WINAPI ProvidorFindClosePrinterChangeNotification (_In_ HANDLE hPrinter)
 
BOOL WINAPI SpoolerFindFirstPrinterChangeNotification (HANDLE hPrinter, DWORD fdwFlags, DWORD fdwOptions, PHANDLE phEvent, PVOID pPrinterNotifyOptions, PVOID pvReserved)
 
BOOL WINAPI SpoolerFindNextPrinterChangeNotification (_In_ HANDLE hPrinter, _Out_ LPDWORD pfdwChange, _In_opt_ LPVOID pPrinterNotifyOptions, _Inout_opt_ LPVOID *ppPrinterNotifyInfo)
 
VOID WINAPI SpoolerFreePrinterNotifyInfo (_In_ PPRINTER_NOTIFY_INFO pInfo)
 
BOOL WINAPI SpoolerFindClosePrinterChangeNotification (_In_ HANDLE hPrinter)
 
LPMONITOR2 WINAPI InitializePrintMonitor2 (_In_ PMONITORINIT pMonitorInit, _Out_ PHANDLE phMonitor)
 
PMONITORUI WINAPI InitializePrintMonitorUI (VOID)
 
LPMONITOREX WINAPI InitializePrintMonitor (_In_ LPWSTR pRegistryRoot)
 
BOOL WINAPI InitializeMonitorEx (_In_ LPWSTR pRegistryRoot, _Out_ LPMONITOR pMonitor)
 
PBIDI_RESPONSE_CONTAINER WINAPI RouterAllocBidiResponseContainer (_In_ DWORD Count)
 
PVOID WINAPI RouterAllocBidiMem (_In_ size_t NumBytes)
 
DWORD WINAPI RouterFreeBidiResponseContainer (_In_ PBIDI_RESPONSE_CONTAINER pData)
 
VOID WINAPI RouterFreeBidiMem (_In_ PVOID pMemPointer)
 
BOOL WINAPI SplPromptUIInUsersSession (_In_ HANDLE hPrinter, _In_ DWORD JobId, _In_ PSHOWUIPARAMS pUIParams, _Out_ DWORD *pResponse)
 
DWORD WINAPI SplIsSessionZero (_In_ HANDLE hPrinter, _In_ DWORD JobId, _Out_ BOOL *pIsSessionZero)
 
BOOL WINAPI GetJobAttributes (_In_ LPWSTR pPrinterName, _In_ LPDEVMODEW pDevmode, _Out_ PATTRIBUTE_INFO_3 pAttributeInfo)
 
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 SpoolerRefreshPrinterChangeNotification (_In_ HANDLE hPrinter, _In_ DWORD dwColor, _In_ PPRINTER_NOTIFY_OPTIONS pOptions, _Inout_opt_ PPRINTER_NOTIFY_INFO *ppInfo)
 
BOOL WINAPI OpenPrinterToken (PHANDLE phToken)
 
BOOL WINAPI SetPrinterToken (HANDLE hToken)
 
BOOL WINAPI ClosePrinterToken (HANDLE hToken)
 
BOOL WINAPI InstallPrintProcessor (HWND hWnd)
 

Variables

_In_ HWND hWnd
 
_In_ HWND _In_ PCWSTR pszMonitorNameIn
 
_In_ HWND _In_ PCWSTR _Out_opt_ PWSTRppszPortNameOut
 

Macro Definition Documentation

◆ __ATTRIBUTE_INFO_3__

#define __ATTRIBUTE_INFO_3__

Definition at line 1064 of file winsplp.h.

◆ __ATTRIBUTE_INFO_4__

#define __ATTRIBUTE_INFO_4__

Definition at line 1125 of file winsplp.h.

◆ _WINSPLP_

#define _WINSPLP_

Definition at line 24 of file winsplp.h.

◆ BOOKLET_EDGE_LEFT

#define BOOKLET_EDGE_LEFT   0x00000000

Definition at line 1153 of file winsplp.h.

◆ BOOKLET_EDGE_RIGHT

#define BOOKLET_EDGE_RIGHT   0x00000001

Definition at line 1154 of file winsplp.h.

◆ COPYFILE_EVENT_ADD_PRINTER_CONNECTION

#define COPYFILE_EVENT_ADD_PRINTER_CONNECTION   3

Definition at line 50 of file winsplp.h.

◆ COPYFILE_EVENT_DELETE_PRINTER

#define COPYFILE_EVENT_DELETE_PRINTER   2

Definition at line 49 of file winsplp.h.

◆ COPYFILE_EVENT_DELETE_PRINTER_CONNECTION

#define COPYFILE_EVENT_DELETE_PRINTER_CONNECTION   4

Definition at line 51 of file winsplp.h.

◆ COPYFILE_EVENT_FILES_CHANGED

#define COPYFILE_EVENT_FILES_CHANGED   5

Definition at line 52 of file winsplp.h.

◆ COPYFILE_EVENT_SET_PRINTER_DATAEX

#define COPYFILE_EVENT_SET_PRINTER_DATAEX   1

Definition at line 48 of file winsplp.h.

◆ COPYFILE_FLAG_CLIENT_SPOOLER

#define COPYFILE_FLAG_CLIENT_SPOOLER   0x00000001

Definition at line 54 of file winsplp.h.

◆ COPYFILE_FLAG_SERVER_SPOOLER

#define COPYFILE_FLAG_SERVER_SPOOLER   0x00000002

Definition at line 55 of file winsplp.h.

◆ DONT_SEND_EXTRA_PAGES_FOR_DUPLEX

#define DONT_SEND_EXTRA_PAGES_FOR_DUPLEX   (0x00000001 << 1)

Definition at line 1146 of file winsplp.h.

◆ DOWN_THEN_LEFT

#define DOWN_THEN_LEFT   (0x00000001 << 3)

Definition at line 1151 of file winsplp.h.

◆ DOWN_THEN_RIGHT

#define DOWN_THEN_RIGHT   (0x00000001 << 1)

Definition at line 1149 of file winsplp.h.

◆ FILL_WITH_DEFAULTS

#define FILL_WITH_DEFAULTS   0x1

Definition at line 1482 of file winsplp.h.

◆ HKEYMONITOR

#define HKEYMONITOR   HANDLE

Definition at line 33 of file winsplp.h.

◆ LEFT_THEN_DOWN

#define LEFT_THEN_DOWN   (0x00000001 << 2)

Definition at line 1150 of file winsplp.h.

◆ MONITOR2_SIZE_WIN2K

#define MONITOR2_SIZE_WIN2K   (sizeof(DWORD) + (sizeof(PVOID)*18))

Definition at line 45 of file winsplp.h.

◆ PRINTER_NOTIFY_INFO_DATA_COMPACT

#define PRINTER_NOTIFY_INFO_DATA_COMPACT   1

Definition at line 57 of file winsplp.h.

◆ PRINTER_NOTIFY_STATUS_ENDPOINT

#define PRINTER_NOTIFY_STATUS_ENDPOINT   1

Definition at line 36 of file winsplp.h.

◆ PRINTER_NOTIFY_STATUS_INFO

#define PRINTER_NOTIFY_STATUS_INFO   4

Definition at line 38 of file winsplp.h.

◆ PRINTER_NOTIFY_STATUS_POLL

#define PRINTER_NOTIFY_STATUS_POLL   2

Definition at line 37 of file winsplp.h.

◆ REVERSE_PAGES_FOR_REVERSE_DUPLEX

#define REVERSE_PAGES_FOR_REVERSE_DUPLEX   (0x00000001)

Definition at line 1145 of file winsplp.h.

◆ RIGHT_THEN_DOWN

#define RIGHT_THEN_DOWN   (0x00000001)

Definition at line 1148 of file winsplp.h.

◆ ROUTER_STOP_ROUTING

#define ROUTER_STOP_ROUTING   2

Definition at line 42 of file winsplp.h.

◆ ROUTER_SUCCESS

#define ROUTER_SUCCESS   1

Definition at line 41 of file winsplp.h.

◆ ROUTER_UNKNOWN

#define ROUTER_UNKNOWN   0

Definition at line 40 of file winsplp.h.

Typedef Documentation

◆ ATTRIBUTE_INFO_3

◆ ATTRIBUTE_INFO_4

◆ LPMONITOR

◆ LPMONITOR2

◆ LPMONITOREX

◆ LPPRINTER_NOTIFY_INIT

◆ LPPRINTPROCESSOROPENDATA

◆ LPPRINTPROVIDOR

◆ LPSPLCLIENT_INFO_1

◆ LPSPLCLIENT_INFO_2

Definition at line 1161 of file winsplp.h.

◆ LPSPLCLIENT_INFO_3

◆ MONITOR

◆ MONITOR2

◆ MONITOREX

◆ MONITORINIT

◆ MONITORREG

◆ MONITORUI

◆ NOTIFICATION_CALLBACK_COMMANDS

◆ NOTIFICATION_CONFIG_1

◆ NOTIFICATION_CONFIG_FLAGS

◆ PATTRIBUTE_INFO_3

◆ PATTRIBUTE_INFO_4

◆ PMESSAGEBOX_PARAMS

◆ PMONITOR2

◆ PMONITORINIT

◆ PMONITORREG

◆ PMONITORUI

◆ PNOTIFICATION_CONFIG_1

◆ PPRINTER_NOTIFY_INIT

◆ PPRINTPROCESSOROPENDATA

◆ PRINTER_NOTIFY_INIT

◆ PRINTPROCESSOROPENDATA

◆ PRINTPROVIDOR

◆ PSHOWUIPARAMS

◆ PSPLCLIENT_INFO_1

◆ PSPLCLIENT_INFO_2

Definition at line 1161 of file winsplp.h.

◆ PSPLCLIENT_INFO_3

◆ ROUTER_NOTIFY_CALLBACK

typedef 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)

Definition at line 1083 of file winsplp.h.

◆ SPLCLIENT_INFO_1

◆ SPLCLIENT_INFO_2

Definition at line 1161 of file winsplp.h.

◆ SPLCLIENT_INFO_2_LONGHORN

◆ SPLCLIENT_INFO_2_W2K

◆ SPLCLIENT_INFO_2_WINXP

◆ SPLCLIENT_INFO_3

Enumeration Type Documentation

◆ _NOTIFICATION_CALLBACK_COMMANDS

Enumerator
NOTIFICATION_COMMAND_NOTIFY 
NOTIFICATION_COMMAND_CONTEXT_ACQUIRE 
NOTIFICATION_COMMAND_CONTEXT_RELEASE 

Definition at line 1091 of file winsplp.h.

◆ _NOTIFICATION_CONFIG_FLAGS

Enumerator
NOTIFICATION_CONFIG_CREATE_EVENT 
NOTIFICATION_CONFIG_REGISTER_CALLBACK 
NOTIFICATION_CONFIG_EVENT_TRIGGER 
NOTIFICATION_CONFIG_ASYNC_CHANNEL 

Definition at line 1104 of file winsplp.h.

◆ UI_TYPE

Enumerator
kMessageBox 

Definition at line 1042 of file winsplp.h.

1042  {
1043  kMessageBox = 0
1044 } UI_TYPE;
UI_TYPE
Definition: winsplp.h:1042

Function Documentation

◆ _Success_()

_Success_ ( return = 0)

Definition at line 3139 of file fsctrl.c.

3189 {
3190  PLIST_ENTRY Link;
3191 
3192  PVPB Vpb = Vcb->Vpb;
3193  PVPB OldVpb;
3194 
3195  BOOLEAN Remount = FALSE;
3196 
3197  PAGED_CODE();
3198 
3199  UNREFERENCED_PARAMETER( IrpContext );
3200 
3201  //
3202  // Check whether we are looking for a device only Mvcb.
3203  //
3204 
3205  for (Link = CdData.VcbQueue.Flink;
3206  Link != &CdData.VcbQueue;
3207  Link = Link->Flink) {
3208 
3209  *OldVcb = CONTAINING_RECORD( Link, VCB, VcbLinks );
3210 
3211  //
3212  // Skip ourselves.
3213  //
3214 
3215  if (Vcb == *OldVcb) { continue; }
3216 
3217  //
3218  // Look at the Vpb and state of the previous Vcb.
3219  //
3220 
3221  OldVpb = (*OldVcb)->Vpb;
3222 
3223  if ((OldVpb != Vpb) &&
3224  (OldVpb->RealDevice == Vpb->RealDevice) &&
3225  ((*OldVcb)->VcbCondition == VcbNotMounted)) {
3226 
3227  //
3228  // If the current disk is a raw disk then it can match a previous music or
3229  // raw disk.
3230  //
3231 
3232  if (FlagOn( Vcb->VcbState, VCB_STATE_AUDIO_DISK)) {
3233 
3234  if (FlagOn( (*OldVcb)->VcbState, VCB_STATE_AUDIO_DISK )) {
3235 
3236  //
3237  // If we have both TOC then fail the remount if the lengths
3238  // are different or they don't match.
3239  //
3240 
3241  if ((Vcb->TocLength != (*OldVcb)->TocLength) ||
3242  ((Vcb->TocLength != 0) &&
3243  !RtlEqualMemory( Vcb->CdromToc,
3244  (*OldVcb)->CdromToc,
3245  Vcb->TocLength ))) {
3246 
3247  continue;
3248  }
3249 
3250  Remount = TRUE;
3251  break;
3252  }
3253 
3254  //
3255  // The current disk is not a raw disk. Go ahead and compare
3256  // serial numbers, volume label and TOC.
3257  //
3258 
3259  }
3260  else if ((OldVpb->SerialNumber == Vpb->SerialNumber) &&
3261  (Vcb->TocLength == (*OldVcb)->TocLength) &&
3262  ((Vcb->TocLength == 0) || RtlEqualMemory( Vcb->CdromToc,
3263  (*OldVcb)->CdromToc,
3264  Vcb->TocLength )) &&
3265  (Vpb->VolumeLabelLength == OldVpb->VolumeLabelLength) &&
3266  (RtlEqualMemory( OldVpb->VolumeLabel,
3267  Vpb->VolumeLabel,
3268  Vpb->VolumeLabelLength ))) {
3269  //
3270  // Remember the old Vcb. Then set the return value to
3271  // TRUE and break.
3272  //
3273 
3274  Remount = TRUE;
3275  break;
3276  }
3277  }
3278  }
3279 
3280  return Remount;
3281 }
#define VCB_STATE_AUDIO_DISK
Definition: cdstruc.h:718
#define TRUE
Definition: types.h:120
WCHAR VolumeLabel[MAXIMUM_VOLUME_LABEL_LENGTH/sizeof(WCHAR)]
Definition: iotypes.h:175
#define UNREFERENCED_PARAMETER(P)
Definition: ntbasedef.h:323
Definition: cdstruc.h:504
static int Link(const char **args)
Definition: vfdcmd.c:2414
#define PAGED_CODE()
Definition: video.h:57
unsigned char BOOLEAN
PFLT_MESSAGE_WAITER_QUEUE CONTAINING_RECORD(Csq, DEVICE_EXTENSION, IrpQueue)) -> WaiterQ.mLock) _IRQL_raises_(DISPATCH_LEVEL) VOID NTAPI FltpAcquireMessageWaiterLock(_In_ PIO_CSQ Csq, _Out_ PKIRQL Irql)
Definition: Messaging.c:560
struct _LIST_ENTRY * Flink
Definition: typedefs.h:119
CD_DATA CdData
Definition: cddata.c:42
NTSYSAPI ULONG NTAPI RtlEqualMemory(CONST VOID *Source1, CONST VOID *Source2, ULONG Length)
struct _DEVICE_OBJECT * RealDevice
Definition: iotypes.h:172
#define Vcb
Definition: cdprocs.h:1425
Definition: typedefs.h:117
#define FlagOn(_F, _SF)
Definition: ext2fs.h:179
LIST_ENTRY VcbQueue
Definition: cdstruc.h:340
Definition: iotypes.h:166
USHORT VolumeLabelLength
Definition: iotypes.h:170
ULONG SerialNumber
Definition: iotypes.h:173
IN OUT PVCB IN PDEVICE_OBJECT IN PVPB Vpb
Definition: fatprocs.h:1664

◆ AppendPrinterNotifyInfoData()

BOOL WINAPI AppendPrinterNotifyInfoData ( _In_ PPRINTER_NOTIFY_INFO  pInfoDest,
_In_opt_ PPRINTER_NOTIFY_INFO_DATA  pInfoDataSrc,
_In_ DWORD  fdwFlags 
)

◆ CallRouterFindFirstPrinterChangeNotification()

DWORD WINAPI CallRouterFindFirstPrinterChangeNotification ( _In_ HANDLE  hPrinter,
_In_ DWORD  fdwFlags,
_In_ DWORD  fdwOptions,
_In_ HANDLE  hNotify,
_In_ PPRINTER_NOTIFY_OPTIONS  pPrinterNotifyOptions 
)

◆ ClosePort()

BOOL WINAPI ClosePort ( _In_ HANDLE  hPort)

Referenced by START_TEST().

◆ ClosePrinterToken()

BOOL WINAPI ClosePrinterToken ( HANDLE  hToken)

◆ ClosePrintProcessor()

BOOL WINAPI ClosePrintProcessor ( _Inout_ HANDLE  hPrintProcessor)

◆ ConfigurePortUI()

BOOL WINAPI ConfigurePortUI ( _In_ PCWSTR  pszServer,
_In_ HWND  hWnd,
_In_ PCWSTR  pszPortName 
)

◆ ControlPrintProcessor()

BOOL WINAPI ControlPrintProcessor ( _In_ HANDLE  hPrintProcessor,
_In_ DWORD  Command 
)

◆ CreatePrinterIC()

HANDLE WINAPI CreatePrinterIC ( _In_ HANDLE  hPrinter,
_In_opt_ LPDEVMODEW  pDevMode 
)

◆ DeletePortUI()

BOOL WINAPI DeletePortUI ( _In_ PCWSTR  pszServer,
_In_ HWND  hWnd,
_In_ PCWSTR  pszPortName 
)

◆ DeletePrinterIC()

BOOL WINAPI DeletePrinterIC ( _In_ HANDLE  hPrinterIC)

◆ DevQueryPrint()

BOOL WINAPI DevQueryPrint ( _In_ HANDLE  hPrinter,
_In_ LPDEVMODEW  pDevMode,
_Out_ DWORD pResID 
)

◆ GenerateCopyFilePaths()

DWORD WINAPI GenerateCopyFilePaths ( _In_ LPCWSTR  pszPrinterName,
_In_ LPCWSTR  pszDirectory,
_In_ LPBYTE  pSplClientInfo,
_In_ DWORD  dwLevel,
_Inout_updates_ *pcchSourceDirSize LPWSTR  pszSourceDir,
_Inout_ LPDWORD  pcchSourceDirSize,
_Inout_updates_ *pcchTargetDirSize LPWSTR  pszTargetDir,
_Inout_ LPDWORD  pcchTargetDirSize,
_In_ DWORD  dwFlags 
)

◆ GetJobAttributes()

BOOL WINAPI GetJobAttributes ( _In_ LPWSTR  pPrinterName,
_In_ LPDEVMODEW  pDevmode,
_Out_ PATTRIBUTE_INFO_3  pAttributeInfo 
)

◆ GetJobAttributesEx()

BOOL WINAPI GetJobAttributesEx ( _In_ LPWSTR  pPrinterName,
_In_ LPDEVMODEW  pDevmode,
_In_ DWORD  dwLevel,
_Out_writes_bytes_(nSize) LPBYTE  pAttributeInfo,
_In_ DWORD  nSize,
_In_ DWORD  dwFlags 
)

◆ GetPrintProcessorCapabilities()

DWORD WINAPI GetPrintProcessorCapabilities ( _In_ LPTSTR  pValueName,
_In_ DWORD  dwAttributes,
_Out_writes_bytes_(nSize) LPBYTE  pData,
_In_ DWORD  nSize,
_Out_ LPDWORD  pcbNeeded 
)

◆ ImpersonatePrinterClient()

◆ InitializeMonitor()

BOOL WINAPI InitializeMonitor ( _In_ LPWSTR  pRegistryRoot)

◆ InitializeMonitorEx()

BOOL WINAPI InitializeMonitorEx ( _In_ LPWSTR  pRegistryRoot,
_Out_ LPMONITOR  pMonitor 
)

◆ InitializePrintMonitor()

LPMONITOREX WINAPI InitializePrintMonitor ( _In_ LPWSTR  pRegistryRoot)

◆ InitializePrintMonitor2()

LPMONITOR2 WINAPI InitializePrintMonitor2 ( _In_ PMONITORINIT  pMonitorInit,
_Out_ PHANDLE  phMonitor 
)

◆ InitializePrintMonitorUI()

PMONITORUI WINAPI InitializePrintMonitorUI ( VOID  )

Definition at line 663 of file localui.c.

664 {
665  static MONITORUI mymonitorui =
666  {
667  sizeof(MONITORUI),
671  };
672 
673  TRACE("=> %p\n", &mymonitorui);
674  return &mymonitorui;
675 }
static BOOL WINAPI localui_AddPortUI(PCWSTR pName, HWND hWnd, PCWSTR pMonitorName, PWSTR *ppPortName)
Definition: localui.c:500
struct _MONITORUI MONITORUI
static BOOL WINAPI localui_ConfigurePortUI(PCWSTR pName, HWND hWnd, PCWSTR pPortName)
Definition: localui.c:570
static BOOL WINAPI localui_DeletePortUI(PCWSTR pName, HWND hWnd, PCWSTR pPortName)
Definition: localui.c:621
#define TRACE(s)
Definition: solgame.cpp:4

◆ InitializePrintProvidor()

BOOL WINAPI InitializePrintProvidor ( _Out_writes_bytes_(cbPrintProvidor) LPPRINTPROVIDOR  pPrintProvidor,
_In_ DWORD  cbPrintProvidor,
_In_opt_ LPWSTR  pFullRegistryPath 
)

◆ InstallPrintProcessor()

BOOL WINAPI InstallPrintProcessor ( HWND  hWnd)

◆ OpenPort()

BOOL WINAPI OpenPort ( _In_ LPWSTR  pName,
_Out_ PHANDLE  pHandle 
)

Referenced by START_TEST().

◆ OpenPrinterToken()

BOOL WINAPI OpenPrinterToken ( PHANDLE  phToken)

◆ OpenPrintProcessor()

HANDLE WINAPI OpenPrintProcessor ( _In_ LPWSTR  pPrinterName,
_In_ PPRINTPROCESSOROPENDATA  pPrintProcessorOpenData 
)

◆ PartialReplyPrinterChangeNotification()

BOOL WINAPI PartialReplyPrinterChangeNotification ( _In_ HANDLE  hNotify,
_In_opt_ PPRINTER_NOTIFY_INFO_DATA  pInfoDataSrc 
)

◆ PlayGdiScriptOnPrinterIC()

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 
)

◆ PrintDocumentOnPrintProcessor()

BOOL WINAPI PrintDocumentOnPrintProcessor ( _In_ HANDLE  hPrintProcessor,
_In_ LPWSTR  pDocumentName 
)

◆ ProvidorFindClosePrinterChangeNotification()

BOOL WINAPI ProvidorFindClosePrinterChangeNotification ( _In_ HANDLE  hPrinter)

◆ ProvidorFindFirstPrinterChangeNotification()

BOOL WINAPI ProvidorFindFirstPrinterChangeNotification ( _In_ HANDLE  hPrinter,
_In_ DWORD  fdwFlags,
_In_ DWORD  fdwOptions,
_In_ HANDLE  hNotify,
_In_opt_ PVOID  pvReserved0,
_Out_opt_ PVOID  pvReserved1 
)

◆ ReadPort()

BOOL WINAPI ReadPort ( _In_ HANDLE  hPort,
_Out_writes_bytes_(cbBuffer) LPBYTE  pBuffer,
_In_ DWORD  cbBuffer,
_Out_ LPDWORD  pcbRead 
)

Referenced by Isolate(), and START_TEST().

◆ ReplyPrinterChangeNotification()

BOOL WINAPI ReplyPrinterChangeNotification ( _In_ HANDLE  hNotify,
_In_ DWORD  fdwFlags,
_Out_opt_ PDWORD  pdwResult,
_In_opt_ PVOID  pPrinterNotifyInfo 
)

◆ ReplyPrinterChangeNotificationEx()

BOOL WINAPI ReplyPrinterChangeNotificationEx ( _In_ HANDLE  hNotify,
_In_ DWORD  dwColor,
_In_ DWORD  fdwFlags,
_Out_ PDWORD  pdwResult,
_In_ PVOID  pPrinterNotifyInfo 
)

◆ RevertToPrinterSelf()

HANDLE WINAPI RevertToPrinterSelf ( VOID  )

RevertToPrinterSelf reverts the security context from the current user's context back to the process context. As spoolss.dll is used by spoolsv.exe, this is usually the SYSTEM security context.

Unlike the traditional ImpersonateClient and then RevertToSelf approach, we do it the other way round here, because spoolss.dll is delay-loaded by spoolsv.exe in the current user's context. Use RevertToPrinterSelf then to return to the SYSTEM context for specific tasks.

Definition at line 64 of file context.c.

65 {
66  DWORD dwErrorCode;
67  HANDLE hReturnValue = NULL;
68  HANDLE hToken = NULL;
69 
70  // All spoolss code is usually called after impersonating the client. In this case, we can retrieve our current thread impersonation token using OpenThreadToken.
71  // But in rare occasions, spoolss code is also called from a higher-privileged thread that doesn't impersonate the client. Then we don't get an impersonation token.
72  // Anyway, we can't just return nothing in this case, because this is being treated as failure by the caller. So we return the token of the current process.
73  // This behaviour is verified with Windows!
75  {
76  // Tell the thread to stop impersonating.
77  if (!SetThreadToken(NULL, NULL))
78  {
79  dwErrorCode = GetLastError();
80  ERR("SetThreadToken failed with error %lu!\n", dwErrorCode);
81  goto Cleanup;
82  }
83  }
84  else if (!OpenProcessToken(GetCurrentProcess(), TOKEN_QUERY, &hToken))
85  {
86  dwErrorCode = GetLastError();
87  ERR("OpenProcessToken failed with error %lu!\n", dwErrorCode);
88  goto Cleanup;
89  }
90 
91  // We were successful, return a token!
92  dwErrorCode = ERROR_SUCCESS;
93  hReturnValue = hToken;
94 
95  // Don't let the cleanup routine close this.
96  hToken = NULL;
97 
98 Cleanup:
99  if (hToken)
100  CloseHandle(hToken);
101 
102  SetLastError(dwErrorCode);
103  return hReturnValue;
104 }
#define TRUE
Definition: types.h:120
#define CloseHandle
Definition: compat.h:398
#define ERROR_SUCCESS
Definition: deptool.c:10
DWORD WINAPI GetLastError(VOID)
Definition: except.c:1059
BOOL WINAPI SetThreadToken(IN PHANDLE ThreadHandle OPTIONAL, IN HANDLE TokenHandle)
Definition: security.c:463
#define TOKEN_IMPERSONATE
Definition: setypes.h:873
HANDLE WINAPI GetCurrentThread(VOID)
Definition: proc.c:1178
smooth NULL
Definition: ftsmooth.c:416
#define TOKEN_QUERY
Definition: setypes.h:874
HANDLE WINAPI GetCurrentProcess(VOID)
Definition: proc.c:1168
unsigned long DWORD
Definition: ntddk_ex.h:95
#define SetLastError(x)
Definition: compat.h:409
static const WCHAR Cleanup[]
Definition: register.c:80
#define ERR(fmt,...)
Definition: debug.h:109
BOOL WINAPI OpenThreadToken(HANDLE ThreadHandle, DWORD DesiredAccess, BOOL OpenAsSelf, HANDLE *TokenHandle)
Definition: security.c:338
BOOL WINAPI OpenProcessToken(HANDLE ProcessHandle, DWORD DesiredAccess, PHANDLE TokenHandle)
Definition: security.c:296

Referenced by _CreateNonspooledPort(), _HandleConfigureLPTPortCommandOK(), and _HandleSetDefaultCommConfig().

◆ RouterAllocBidiMem()

PVOID WINAPI RouterAllocBidiMem ( _In_ size_t  NumBytes)

◆ RouterAllocBidiResponseContainer()

PBIDI_RESPONSE_CONTAINER WINAPI RouterAllocBidiResponseContainer ( _In_ DWORD  Count)

◆ RouterAllocPrinterNotifyInfo()

PPRINTER_NOTIFY_INFO WINAPI RouterAllocPrinterNotifyInfo ( _In_ DWORD  cPrinterNotifyInfoData)

◆ RouterFreeBidiMem()

VOID WINAPI RouterFreeBidiMem ( _In_ PVOID  pMemPointer)

◆ RouterFreeBidiResponseContainer()

DWORD WINAPI RouterFreeBidiResponseContainer ( _In_ PBIDI_RESPONSE_CONTAINER  pData)

◆ RouterFreePrinterNotifyInfo()

BOOL WINAPI RouterFreePrinterNotifyInfo ( _In_opt_ PPRINTER_NOTIFY_INFO  pInfo)

◆ SetPrinterToken()

BOOL WINAPI SetPrinterToken ( HANDLE  hToken)

◆ SplDeleteSpoolerPortEnd()

BOOL WINAPI SplDeleteSpoolerPortEnd ( _In_ PCWSTR  pName,
_In_ BOOL  bDeletePort 
)

◆ SplDeleteSpoolerPortStart()

BOOL WINAPI SplDeleteSpoolerPortStart ( _In_ PCWSTR  pPortName)

◆ SplIsSessionZero()

DWORD WINAPI SplIsSessionZero ( _In_ HANDLE  hPrinter,
_In_ DWORD  JobId,
_Out_ BOOL pIsSessionZero 
)

◆ SplPromptUIInUsersSession()

BOOL WINAPI SplPromptUIInUsersSession ( _In_ HANDLE  hPrinter,
_In_ DWORD  JobId,
_In_ PSHOWUIPARAMS  pUIParams,
_Out_ DWORD pResponse 
)

◆ SpoolerCopyFileEvent()

BOOL WINAPI SpoolerCopyFileEvent ( _In_ LPWSTR  pszPrinterName,
_In_ LPWSTR  pszKey,
_In_ DWORD  dwCopyFileEvent 
)

◆ SpoolerFindClosePrinterChangeNotification()

BOOL WINAPI SpoolerFindClosePrinterChangeNotification ( _In_ HANDLE  hPrinter)

◆ SpoolerFindFirstPrinterChangeNotification()

BOOL WINAPI SpoolerFindFirstPrinterChangeNotification ( HANDLE  hPrinter,
DWORD  fdwFlags,
DWORD  fdwOptions,
PHANDLE  phEvent,
PVOID  pPrinterNotifyOptions,
PVOID  pvReserved 
)

◆ SpoolerFindNextPrinterChangeNotification()

BOOL WINAPI SpoolerFindNextPrinterChangeNotification ( _In_ HANDLE  hPrinter,
_Out_ LPDWORD  pfdwChange,
_In_opt_ LPVOID  pPrinterNotifyOptions,
_Inout_opt_ LPVOID ppPrinterNotifyInfo 
)

◆ SpoolerFreePrinterNotifyInfo()

VOID WINAPI SpoolerFreePrinterNotifyInfo ( _In_ PPRINTER_NOTIFY_INFO  pInfo)

◆ SpoolerRefreshPrinterChangeNotification()

BOOL WINAPI SpoolerRefreshPrinterChangeNotification ( _In_ HANDLE  hPrinter,
_In_ DWORD  dwColor,
_In_ PPRINTER_NOTIFY_OPTIONS  pOptions,
_Inout_opt_ PPRINTER_NOTIFY_INFO ppInfo 
)

◆ WritePort()

BOOL WINAPI WritePort ( _In_ HANDLE  hPort,
_In_reads_bytes_(cbBuf) LPBYTE  pBuffer,
_In_ DWORD  cbBuf,
_Out_ LPDWORD  pcbWritten 
)

Referenced by START_TEST().

◆ XcvClosePort()

BOOL WINAPI XcvClosePort ( _In_ HANDLE  hXcv)

Referenced by START_TEST().

◆ XcvDataPort()

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 
)

Referenced by START_TEST().

◆ XcvOpenPort()

BOOL WINAPI XcvOpenPort ( _In_ LPCWSTR  pszObject,
_In_ ACCESS_MASK  GrantedAccess,
_Out_ PHANDLE  phXcv 
)

Referenced by START_TEST().

Variable Documentation

◆ hWnd

_In_ HWND hWnd

Definition at line 1267 of file winsplp.h.

◆ ppszPortNameOut

_In_ HWND _In_ PCWSTR _Out_opt_ PWSTR* ppszPortNameOut

Definition at line 1267 of file winsplp.h.

◆ pszMonitorNameIn

_In_ HWND _In_ PCWSTR pszMonitorNameIn

Definition at line 1267 of file winsplp.h.