NT4/private/inc/xactsrv2.h
2020-09-30 17:12:29 +02:00

159 lines
3.2 KiB
C

/*++
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_