54 lines
1,021 B
Plaintext
54 lines
1,021 B
Plaintext
|
Stateless URI-named IPC mechanism
|
||
|
|
||
|
|
||
|
HANDLE
|
||
|
IpcRegister(
|
||
|
IN HANDLE Parent OPTIONAL,
|
||
|
IN PWSTR pUrl,
|
||
|
IN ULONG Flags
|
||
|
);
|
||
|
|
||
|
typedef struct _IPC_MESSAGE
|
||
|
{
|
||
|
ULONG UriLength;
|
||
|
ULONG BufferLength;
|
||
|
// WCHAR Uri[UriLength];
|
||
|
// UCHAR Alignment[Varies];
|
||
|
// UCHAR Buffer[BufferLength];
|
||
|
|
||
|
} IPC_MESSAGE, *PIPC_MESSAGE;
|
||
|
|
||
|
#define IPC_MESSAGE_TO_URI(pMessage) \
|
||
|
(PWCHAR)((pMessage) + 1)
|
||
|
|
||
|
#define IPC_MESSAGE_TO_BUFFER(pMessage) \
|
||
|
ALIGN_UP_POINTER((((PUCHAR)(pMessage)) + (pMessage)->UriLength), PVOID)
|
||
|
|
||
|
|
||
|
ULONG
|
||
|
IpcSendMessage(
|
||
|
IN HANDLE IpcHandle,
|
||
|
IN ULONG Flags,
|
||
|
IN PIPC_MESSAGE pMessage,
|
||
|
IN ULONG MessageLength
|
||
|
);
|
||
|
|
||
|
ULONG
|
||
|
IpcReceiveMessage(
|
||
|
IN HANDLE IpcHandle,
|
||
|
IN ULONG Flags,
|
||
|
OUT PIPC_MESSAGE pMessage,
|
||
|
IN ULONG MessageLength,
|
||
|
OUT PULONG pBytesReceived OPTIONAL,
|
||
|
IN LPOVERLAPPED pOverlapped OPTIONAL
|
||
|
);
|
||
|
|
||
|
|
||
|
??? Separate "scheme handlers" ???
|
||
|
|
||
|
|
||
|
??? App Pools & Config Groups ???
|
||
|
|
||
|
|
||
|
|