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.

158 lines
3.3 KiB

  1. /*++
  2. Copyright (c) 1991 Microsoft Corporation
  3. Module Name:
  4. xactsrv.h
  5. Abstract:
  6. Header file for XACTSRV. Defines structures common to the server and
  7. XACTSRV.
  8. Author:
  9. David Treadwell (davidtr) 07-Jan-1991
  10. Revision History:
  11. --*/
  12. #ifndef _XACTSRV_
  13. #define _XACTSRV_
  14. //
  15. // Structures for messages that are passed across the LPC port between
  16. // the server and XACTSRV.
  17. //
  18. // *** The PORT_MESSAGE structure *must* be the first element of these
  19. // structures!
  20. typedef struct _XACTSRV_REQUEST_MESSAGE {
  21. PORT_MESSAGE PortMessage;
  22. ULONG MessageType;
  23. union {
  24. struct {
  25. struct _TRANSACTION *Transaction;
  26. WCHAR ClientMachineName[CNLEN + 1];
  27. UCHAR ServerName[ NETBIOS_NAME_LEN ];
  28. ULONG TransportNameLength;
  29. PWSTR TransportName;
  30. UCHAR LanmanSessionKey[MSV1_0_LANMAN_SESSION_KEY_LENGTH];
  31. ULONG Flags;
  32. } DownLevelApi;
  33. struct {
  34. PSZ PrinterName;
  35. } OpenPrinter;
  36. struct {
  37. HANDLE hPrinter;
  38. PVOID Buffer;
  39. ULONG BufferLength;
  40. WCHAR ClientMachineName[CNLEN + 1];
  41. } AddPrintJob;
  42. struct {
  43. HANDLE hPrinter;
  44. ULONG JobId;
  45. } SchedulePrintJob;
  46. struct {
  47. HANDLE hPrinter;
  48. } ClosePrinter;
  49. struct {
  50. PSZ Receipient;
  51. PVOID Buffer;
  52. USHORT BufferLength;
  53. } MessageBufferSend;
  54. struct {
  55. PWSTR UserName;
  56. BOOL IsAdmin;
  57. } LSRequest;
  58. struct {
  59. HANDLE hLicense;
  60. } LSRelease;
  61. struct {
  62. BOOLEAN Bind;
  63. UNICODE_STRING TransportName;
  64. } Pnp;
  65. } Message;
  66. } XACTSRV_REQUEST_MESSAGE, *PXACTSRV_REQUEST_MESSAGE;
  67. typedef struct _XACTSRV_REPLY_MESSAGE {
  68. PORT_MESSAGE PortMessage;
  69. union {
  70. struct {
  71. NTSTATUS Status;
  72. } DownLevelApi;
  73. struct {
  74. ULONG Error;
  75. HANDLE hPrinter;
  76. } OpenPrinter;
  77. struct {
  78. ULONG Error;
  79. USHORT BufferLength;
  80. ULONG JobId;
  81. } AddPrintJob;
  82. struct {
  83. ULONG Error;
  84. } SchedulePrintJob;
  85. struct {
  86. ULONG Error;
  87. } ClosePrinter;
  88. struct {
  89. ULONG Error;
  90. } MessageBufferSend;
  91. struct {
  92. NTSTATUS Status;
  93. HANDLE hLicense;
  94. } LSRequest;
  95. } Message;
  96. } XACTSRV_REPLY_MESSAGE, *PXACTSRV_REPLY_MESSAGE;
  97. //
  98. // Message types that can be sent to XACTSRV.
  99. //
  100. #define XACTSRV_MESSAGE_DOWN_LEVEL_API 0
  101. #define XACTSRV_MESSAGE_OPEN_PRINTER 1
  102. #define XACTSRV_MESSAGE_ADD_JOB_PRINTER 2
  103. #define XACTSRV_MESSAGE_SCHD_JOB_PRINTER 4
  104. #define XACTSRV_MESSAGE_CLOSE_PRINTER 5
  105. #define XACTSRV_MESSAGE_MESSAGE_SEND 6
  106. #define XACTSRV_MESSAGE_WAKEUP 7
  107. #define XACTSRV_MESSAGE_LSREQUEST 8
  108. #define XACTSRV_MESSAGE_LSRELEASE 9
  109. #define XACTSRV_MESSAGE_PNP 10
  110. //
  111. // Request Flags definitions
  112. //
  113. #define XS_FLAGS_NT_CLIENT 0x00000001
  114. #endif // ndef _XACTSRV_