mirror of https://github.com/lianthony/NT4.0
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.
110 lines
2.2 KiB
110 lines
2.2 KiB
/*++
|
|
|
|
Copyright (c) 1992 Microsoft Corporation
|
|
|
|
Module Name:
|
|
|
|
spcpack.hxx
|
|
|
|
Abstract:
|
|
|
|
This file contains the definitions of the packet formats used by
|
|
RPC on LPC.
|
|
|
|
Authors:
|
|
|
|
Revision History:
|
|
|
|
--*/
|
|
|
|
#ifndef __WMSGPACK_HXX__
|
|
#define __WMSGPACK_HXX__
|
|
|
|
#define WMSG_RPCMSG (WM_USER + 'd' + 'a' + 'm')
|
|
#define WMSG_CLOSE (WMSG_RPCMSG + 1)
|
|
|
|
typedef enum _WMSG_TYPE
|
|
{
|
|
INVALID = 0xBAD,
|
|
BIND = 0xBB01,
|
|
REQUEST,
|
|
ASYNC_REQUEST,
|
|
RESPONSE,
|
|
FAULT
|
|
} WMSG_TYPE;
|
|
|
|
class WMSG_PORT;
|
|
class WMSG_DATA_PORT;
|
|
|
|
typedef struct _WMSG_COMMON_MESSAGE
|
|
{
|
|
WMSG_TYPE Type;
|
|
WMSG_PORT *DestinationPort;
|
|
} WMSG_COMMON_MESSAGE;
|
|
|
|
typedef struct _WMSG_BIND_MESSAGE
|
|
{
|
|
WMSG_COMMON_MESSAGE Common;
|
|
WMSG_DATA_PORT * ClientPort;
|
|
RPC_SYNTAX_IDENTIFIER InterfaceId;
|
|
RPC_SYNTAX_IDENTIFIER TransferSyntax;
|
|
RPC_STATUS Status;
|
|
unsigned char PresentationContext;
|
|
} WMSG_BIND_MESSAGE;
|
|
|
|
typedef struct _WMSG_REQUEST_MESSAGE
|
|
{
|
|
WMSG_COMMON_MESSAGE Common;
|
|
unsigned char PresentationContext;
|
|
unsigned char ObjectUuidFlag;
|
|
unsigned short ProcedureNumber;
|
|
unsigned long Flags;
|
|
UUID ObjectUuid;
|
|
DWORD GlobalBufSize;
|
|
LPVOID GlobalBuf;
|
|
} WMSG_REQUEST_MESSAGE;
|
|
|
|
typedef struct _WMSG_ASYNC_REQUEST_MESSAGE
|
|
{
|
|
union {
|
|
WMSG_COMMON_MESSAGE Common;
|
|
WMSG_REQUEST_MESSAGE Request;
|
|
};
|
|
RPC_SYNTAX_IDENTIFIER InterfaceId;
|
|
RPC_SYNTAX_IDENTIFIER TransferSyntax;
|
|
ULONG ProcessId;
|
|
} WMSG_ASYNC_REQUEST_MESSAGE;
|
|
|
|
typedef struct _WMSG_RESPONSE_MESSAGE
|
|
{
|
|
WMSG_COMMON_MESSAGE Common;
|
|
unsigned long Flags;
|
|
DWORD GlobalBufSize;
|
|
LPVOID GlobalBuf;
|
|
} WMSG_RESPONSE_MESSAGE;
|
|
|
|
typedef struct _WMSG_FAULT_MESSAGE
|
|
{
|
|
WMSG_COMMON_MESSAGE Common;
|
|
RPC_STATUS Status;
|
|
} WMSG_FAULT_MESSAGE;
|
|
|
|
class WMSG_PACKET
|
|
{
|
|
|
|
public:
|
|
|
|
union {
|
|
WMSG_COMMON_MESSAGE Common;
|
|
WMSG_BIND_MESSAGE Bind;
|
|
WMSG_REQUEST_MESSAGE Request;
|
|
WMSG_ASYNC_REQUEST_MESSAGE AsyncRequest;
|
|
WMSG_RESPONSE_MESSAGE Response;
|
|
WMSG_FAULT_MESSAGE Fault;
|
|
};
|
|
|
|
WMSG_TYPE Type() { return(this->Common.Type); }
|
|
};
|
|
|
|
#endif // __WMSGPACK_HXX__
|
|
|