/*++ Copyright (c) 1991 Microsoft Corporation Module Name: xsdata.h Abstract: Header file for XACTSRV global data. Author: David Treadwell (davidtr) 05-Jan-1991 Shanku Niyogi (w-shanku) Revision History: --*/ #ifndef _XSDATA_ #define _XSDATA_ #include #include #include #include #include // // Routine used to load and initialize for xactsrv processing // extern BOOLEAN XsLoadXactLibrary( WORD FunctionNumber ); extern VOID XsProcessApisWrapper ( LPVOID ThreadNum ); // // Table of information necessary for dispatching API requests. // // ImpersonateClient specifies whether XACTSRV should impersonate the caller // before invoking the API handler. // // Handler specifies the function XACTSRV should call to handle the API. The // function is dynamically loaded from xactsrv.dll the first time that the client // requests the service. // typedef struct _XS_API_TABLE_ENTRY { BOOL ImpersonateClient; LPSTR HandlerName; PXACTSRV_API_HANDLER Handler; LPDESC Params; } XS_API_TABLE_ENTRY, *PXS_API_TABLE_ENTRY; // // Table of information necessary for dispatching API requests. // XsProcessApis uses the API number in the request transaction find // the appropriate entry. // #define XS_SIZE_OF_API_TABLE 216 extern XS_API_TABLE_ENTRY XsApiTable[XS_SIZE_OF_API_TABLE]; // // These entry points are dynamically loaded from xactsrv.dll the first time a // client requests the service // typedef VOID (*XS_SET_PARAMETERS_FUNCTION) ( IN LPTRANSACTION Transaction, IN LPXS_PARAMETER_HEADER Header, IN LPVOID Parameters ); extern XS_SET_PARAMETERS_FUNCTION XsSetParameters; typedef LPVOID (*XS_CAPTURE_PARAMETERS_FUNCTION ) ( IN LPTRANSACTION Transaction, OUT LPDESC *AuxDescriptor ); extern XS_CAPTURE_PARAMETERS_FUNCTION XsCaptureParameters; typedef BOOL (*XS_CHECK_SMB_DESCRIPTOR_FUNCTION)( IN LPDESC SmbDescriptor, IN LPDESC ActualDescriptor ); extern XS_CHECK_SMB_DESCRIPTOR_FUNCTION XsCheckSmbDescriptor; // // The license functions are dynamically loaded, as they are not used on workstations // extern BOOLEAN SsLoadLicenseLibrary(); // // Print Spooler dynamic loading info // typedef BOOL (*PSPOOLER_OPEN_PRINTER)( IN LPWSTR pPrinterName, OUT LPHANDLE phPrinter, IN PVOID pDefault ); typedef BOOL (*PSPOOLER_RESET_PRINTER)( IN HANDLE hPrinter, IN PVOID pDefault ); typedef BOOL (*PSPOOLER_ADD_JOB)( IN HANDLE hPrinter, IN DWORD Level, OUT LPBYTE pData, IN DWORD cbBuf, OUT LPDWORD pcbNeeded ); typedef BOOL (*PSPOOLER_SCHEDULE_JOB)( IN HANDLE hPrinter, IN DWORD JobId ); typedef BOOL (*PSPOOLER_CLOSE_PRINTER)( IN HANDLE hPrinter ); extern PSPOOLER_OPEN_PRINTER pSpoolerOpenPrinterFunction; extern PSPOOLER_RESET_PRINTER pSpoolerResetPrinterFunction; extern PSPOOLER_ADD_JOB pSpoolerAddJobFunction; extern PSPOOLER_SCHEDULE_JOB pSpoolerScheduleJobFunction; extern PSPOOLER_CLOSE_PRINTER pSpoolerClosePrinterFunction; #endif // ndef _XSDATA_