From e611b132f9b8abe35b362e5870b74bce94a1e58e Mon Sep 17 00:00:00 2001 From: Adam Date: Sat, 16 May 2020 20:51:50 -0700 Subject: initial commit --- private/inc/xactsrv2.h | 158 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 158 insertions(+) create mode 100644 private/inc/xactsrv2.h (limited to 'private/inc/xactsrv2.h') diff --git a/private/inc/xactsrv2.h b/private/inc/xactsrv2.h new file mode 100644 index 000000000..7a46e1501 --- /dev/null +++ b/private/inc/xactsrv2.h @@ -0,0 +1,158 @@ +/*++ + +Copyright (c) 1991 Microsoft Corporation + +Module Name: + + xactsrv.h + +Abstract: + + Header file for XACTSRV. Defines structures common to the server and + XACTSRV. + +Author: + + David Treadwell (davidtr) 07-Jan-1991 + +Revision History: + +--*/ + +#ifndef _XACTSRV_ +#define _XACTSRV_ + +// +// Structures for messages that are passed across the LPC port between +// the server and XACTSRV. +// +// *** The PORT_MESSAGE structure *must* be the first element of these +// structures! + +typedef struct _XACTSRV_REQUEST_MESSAGE { + + PORT_MESSAGE PortMessage; + ULONG MessageType; + + union { + + struct { + struct _TRANSACTION *Transaction; + WCHAR ClientMachineName[CNLEN + 1]; + UCHAR ServerName[ NETBIOS_NAME_LEN ]; + ULONG TransportNameLength; + PWSTR TransportName; + UCHAR LanmanSessionKey[MSV1_0_LANMAN_SESSION_KEY_LENGTH]; + ULONG Flags; + } DownLevelApi; + + struct { + PSZ PrinterName; + } OpenPrinter; + + struct { + HANDLE hPrinter; + PVOID Buffer; + ULONG BufferLength; + } AddPrintJob; + + struct { + HANDLE hPrinter; + ULONG JobId; + } SchedulePrintJob; + + struct { + HANDLE hPrinter; + } ClosePrinter; + + struct { + PSZ Receipient; + PVOID Buffer; + USHORT BufferLength; + } MessageBufferSend; + + struct { + PWSTR UserName; + BOOL IsAdmin; + } LSRequest; + + struct { + HANDLE hLicense; + } LSRelease; + + struct { + BOOLEAN Bind; + UNICODE_STRING TransportName; + } Pnp; + + } Message; + + +} XACTSRV_REQUEST_MESSAGE, *PXACTSRV_REQUEST_MESSAGE; + +typedef struct _XACTSRV_REPLY_MESSAGE { + + PORT_MESSAGE PortMessage; + + union { + + struct { + NTSTATUS Status; + } DownLevelApi; + + struct { + ULONG Error; + HANDLE hPrinter; + } OpenPrinter; + + struct { + ULONG Error; + USHORT BufferLength; + ULONG JobId; + } AddPrintJob; + + struct { + ULONG Error; + } SchedulePrintJob; + + struct { + ULONG Error; + } ClosePrinter; + + struct { + ULONG Error; + } MessageBufferSend; + + struct { + NTSTATUS Status; + HANDLE hLicense; + } LSRequest; + + } Message; + +} XACTSRV_REPLY_MESSAGE, *PXACTSRV_REPLY_MESSAGE; + +// +// Message types that can be sent to XACTSRV. +// + +#define XACTSRV_MESSAGE_DOWN_LEVEL_API 0 +#define XACTSRV_MESSAGE_OPEN_PRINTER 1 +#define XACTSRV_MESSAGE_ADD_JOB_PRINTER 2 +#define XACTSRV_MESSAGE_SCHD_JOB_PRINTER 4 +#define XACTSRV_MESSAGE_CLOSE_PRINTER 5 +#define XACTSRV_MESSAGE_MESSAGE_SEND 6 +#define XACTSRV_MESSAGE_WAKEUP 7 +#define XACTSRV_MESSAGE_LSREQUEST 8 +#define XACTSRV_MESSAGE_LSRELEASE 9 +#define XACTSRV_MESSAGE_PNP 10 +#define XACTSRV_MESSAGE_SERVER_THREAD_EXIT 11 + +// +// Request Flags definitions +// + +#define XS_FLAGS_NT_CLIENT 0x00000001 + +#endif // ndef _XACTSRV_ + -- cgit v1.2.3