Source code of Windows XP (NT5)
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.

156 lines
3.0 KiB

  1. /*++
  2. Copyright (c) 1991 Microsoft Corporation
  3. Module Name:
  4. xsdata.h
  5. Abstract:
  6. Header file for XACTSRV global data.
  7. Author:
  8. David Treadwell (davidtr) 05-Jan-1991
  9. Shanku Niyogi (w-shanku)
  10. Revision History:
  11. --*/
  12. #ifndef _XSDATA_
  13. #define _XSDATA_
  14. #include <nturtl.h>
  15. #include <winbase.h>
  16. #include <rap.h>
  17. #include <xstypes.h>
  18. #include <ntmsv1_0.h>
  19. //
  20. // Routine used to load and initialize for xactsrv processing
  21. //
  22. extern BOOLEAN XsLoadXactLibrary( WORD FunctionNumber );
  23. extern VOID
  24. XsProcessApisWrapper (
  25. LPVOID ThreadNum
  26. );
  27. //
  28. // Table of information necessary for dispatching API requests.
  29. //
  30. // ImpersonateClient specifies whether XACTSRV should impersonate the caller
  31. // before invoking the API handler.
  32. //
  33. // Handler specifies the function XACTSRV should call to handle the API. The
  34. // function is dynamically loaded from xactsrv.dll the first time that the client
  35. // requests the service.
  36. //
  37. typedef struct _XS_API_TABLE_ENTRY {
  38. BOOL ImpersonateClient;
  39. LPSTR HandlerName;
  40. PXACTSRV_API_HANDLER Handler;
  41. LPDESC Params;
  42. } XS_API_TABLE_ENTRY, *PXS_API_TABLE_ENTRY;
  43. //
  44. // Table of information necessary for dispatching API requests.
  45. // XsProcessApis uses the API number in the request transaction find
  46. // the appropriate entry.
  47. //
  48. #define XS_SIZE_OF_API_TABLE 216
  49. extern XS_API_TABLE_ENTRY XsApiTable[XS_SIZE_OF_API_TABLE];
  50. //
  51. // These entry points are dynamically loaded from xactsrv.dll the first time a
  52. // client requests the service
  53. //
  54. typedef
  55. VOID
  56. (*XS_SET_PARAMETERS_FUNCTION) (
  57. IN LPTRANSACTION Transaction,
  58. IN LPXS_PARAMETER_HEADER Header,
  59. IN LPVOID Parameters
  60. );
  61. extern XS_SET_PARAMETERS_FUNCTION XsSetParameters;
  62. typedef
  63. LPVOID
  64. (*XS_CAPTURE_PARAMETERS_FUNCTION ) (
  65. IN LPTRANSACTION Transaction,
  66. OUT LPDESC *AuxDescriptor
  67. );
  68. extern XS_CAPTURE_PARAMETERS_FUNCTION XsCaptureParameters;
  69. typedef
  70. BOOL
  71. (*XS_CHECK_SMB_DESCRIPTOR_FUNCTION)(
  72. IN LPDESC SmbDescriptor,
  73. IN LPDESC ActualDescriptor
  74. );
  75. extern XS_CHECK_SMB_DESCRIPTOR_FUNCTION XsCheckSmbDescriptor;
  76. //
  77. // The license functions are dynamically loaded, as they are not used on workstations
  78. //
  79. extern BOOLEAN SsLoadLicenseLibrary();
  80. //
  81. // Print Spooler dynamic loading info
  82. //
  83. typedef
  84. BOOL
  85. (*PSPOOLER_OPEN_PRINTER)(
  86. IN LPWSTR pPrinterName,
  87. OUT LPHANDLE phPrinter,
  88. IN PVOID pDefault
  89. );
  90. typedef
  91. BOOL
  92. (*PSPOOLER_RESET_PRINTER)(
  93. IN HANDLE hPrinter,
  94. IN PVOID pDefault
  95. );
  96. typedef
  97. BOOL
  98. (*PSPOOLER_ADD_JOB)(
  99. IN HANDLE hPrinter,
  100. IN DWORD Level,
  101. OUT LPBYTE pData,
  102. IN DWORD cbBuf,
  103. OUT LPDWORD pcbNeeded
  104. );
  105. typedef
  106. BOOL
  107. (*PSPOOLER_SCHEDULE_JOB)(
  108. IN HANDLE hPrinter,
  109. IN DWORD JobId
  110. );
  111. typedef
  112. BOOL
  113. (*PSPOOLER_CLOSE_PRINTER)(
  114. IN HANDLE hPrinter
  115. );
  116. extern PSPOOLER_OPEN_PRINTER pSpoolerOpenPrinterFunction;
  117. extern PSPOOLER_RESET_PRINTER pSpoolerResetPrinterFunction;
  118. extern PSPOOLER_ADD_JOB pSpoolerAddJobFunction;
  119. extern PSPOOLER_SCHEDULE_JOB pSpoolerScheduleJobFunction;
  120. extern PSPOOLER_CLOSE_PRINTER pSpoolerClosePrinterFunction;
  121. #endif // ndef _XSDATA_