222 lines
5.4 KiB
C
222 lines
5.4 KiB
C
/*++
|
|
|
|
Copyright (c) 1999-1999 Microsoft Corporation
|
|
|
|
Module Name:
|
|
|
|
structs.h
|
|
|
|
Abstract:
|
|
|
|
Definition of structs for I/O between UL.VXD and the usermode API.
|
|
|
|
Author:
|
|
|
|
Mauro Ottaviani (mauroot) 26-Aug-1999
|
|
|
|
Revision History:
|
|
|
|
--*/
|
|
|
|
|
|
#ifndef _STRUCTS_H_
|
|
#define _STRUCTS_H_
|
|
|
|
|
|
typedef enum _UL_IRP_TYPE
|
|
{
|
|
UlIrpEmpty, // 0
|
|
UlIrpReceive, // 1
|
|
UlIrpSend // 2
|
|
|
|
} UL_IRP_TYPE;
|
|
|
|
|
|
#define UL_INVALID_URIHANDLE ((HANDLE)0xFFFFFFFF)
|
|
#define UL_CLEAN_ALL ((ULONG)0xFFFFFFFF)
|
|
|
|
|
|
// IoCtls
|
|
|
|
// UlCreateAppPool
|
|
#define IOCTL_UL_CREATE_APPPOOL 0x20
|
|
|
|
// UlCreateAppPool
|
|
#define IOCTL_UL_CLOSE_APPPOOL 0x22
|
|
|
|
// UlRegisterUri
|
|
#define IOCTL_UL_REGISTER_URI 0x24
|
|
|
|
// UlUnregisterUri
|
|
#define IOCTL_UL_UNREGISTER_URI 0x26
|
|
|
|
// UlUnregisterAll
|
|
#define IOCTL_UL_UNREGISTER_ALL 0x38
|
|
|
|
// UlSendHttpRequest
|
|
#define IOCTL_UL_SEND_HTTP_REQUEST_HEADERS 0x28
|
|
|
|
// UlSendRequestEntityBody
|
|
#define IOCTL_UL_SEND_HTTP_REQUEST_ENTITY_BODY 0x2A
|
|
|
|
// UlReceiveHttpRequest
|
|
#define IOCTL_UL_RECEIVE_HTTP_REQUEST_HEADERS 0x2C
|
|
|
|
// UlReceiveEntityBody
|
|
#define IOCTL_UL_RECEIVE_HTTP_REQUEST_ENTITY_BODY 0x2E
|
|
|
|
// UlSendHttpResponse
|
|
#define IOCTL_UL_SEND_HTTP_RESPONSE_HEADERS 0x30
|
|
|
|
// UlSendEntityBody
|
|
#define IOCTL_UL_SEND_HTTP_RESPONSE_ENTITY_BODY 0x32
|
|
|
|
// UlReceiveHttpResponse
|
|
#define IOCTL_UL_RECEIVE_HTTP_RESPONSE_HEADERS 0x34
|
|
|
|
// UlReceiveResponseEntityBody
|
|
#define IOCTL_UL_RECEIVE_HTTP_RESPONSE_ENTITY_BODY 0x36
|
|
|
|
// UlCancelRequest
|
|
#define IOCTL_UL_CANCEL_REQUEST 0x3A
|
|
|
|
|
|
typedef struct _IN_IOCTL_UL_REGISTER_URI
|
|
{
|
|
ULONG ulSize; // used for structure validation
|
|
HANDLE hAppPoolHandle;
|
|
ULONG ulUriToRegisterLength;
|
|
PWSTR pUriToRegister;
|
|
|
|
} IN_IOCTL_UL_REGISTER_URI, *PIN_IOCTL_UL_REGISTER_URI;
|
|
|
|
typedef struct _IN_IOCTL_UL_UNREGISTER_URI
|
|
{
|
|
ULONG ulSize; // used for structure validation
|
|
HANDLE hAppPoolHandle;
|
|
ULONG ulUriToUnregisterLength;
|
|
PWSTR pUriToUnregister;
|
|
|
|
} IN_IOCTL_UL_UNREGISTER_URI, *PIN_IOCTL_UL_UNREGISTER_URI;
|
|
|
|
|
|
typedef struct _IN_IOCTL_UL_SEND_HTTP_REQUEST_HEADERS
|
|
{
|
|
ULONG ulSize; // used for structure validation
|
|
ULONG ulTargetUriLength;
|
|
PWSTR pTargetUri;
|
|
PUL_HTTP_REQUEST_ID pRequestId;
|
|
ULONG Flags;
|
|
PVOID pRequestBuffer; // cast from a PUL_HTTP_REQUEST
|
|
ULONG RequestBufferLength;
|
|
PULONG pBytesSent;
|
|
LPOVERLAPPED pOverlapped;
|
|
|
|
} IN_IOCTL_UL_SEND_HTTP_REQUEST_HEADERS, *PIN_IOCTL_UL_SEND_HTTP_REQUEST_HEADERS;
|
|
|
|
|
|
typedef struct _IN_IOCTL_UL_SEND_HTTP_REQUEST_ENTITY_BODY
|
|
{
|
|
ULONG ulSize; // used for structure validation
|
|
UL_HTTP_REQUEST_ID RequestId;
|
|
ULONG Flags;
|
|
PVOID pRequestBuffer;
|
|
ULONG RequestBufferLength;
|
|
PULONG pBytesSent;
|
|
LPOVERLAPPED pOverlapped;
|
|
|
|
} IN_IOCTL_UL_SEND_HTTP_REQUEST_ENTITY_BODY, *PIN_IOCTL_UL_SEND_HTTP_REQUEST_ENTITY_BODY;
|
|
|
|
|
|
typedef struct _IN_IOCTL_UL_RECEIVE_HTTP_REQUEST_HEADERS
|
|
{
|
|
ULONG ulSize; // used for structure validation
|
|
HANDLE AppPoolHandle;
|
|
UL_HTTP_REQUEST_ID RequestId;
|
|
ULONG Flags;
|
|
PVOID pRequestBuffer; // PUL_HTTP_REQUEST
|
|
ULONG RequestBufferLength;
|
|
PULONG pBytesReturned;
|
|
LPOVERLAPPED pOverlapped;
|
|
|
|
} IN_IOCTL_UL_RECEIVE_HTTP_REQUEST_HEADERS, *PIN_IOCTL_UL_RECEIVE_HTTP_REQUEST_HEADERS;
|
|
|
|
|
|
typedef struct _IN_IOCTL_UL_RECEIVE_HTTP_REQUEST_ENTITY_BODY
|
|
{
|
|
ULONG ulSize; // used for structure validation
|
|
HANDLE AppPoolHandle;
|
|
UL_HTTP_REQUEST_ID RequestId;
|
|
ULONG Flags;
|
|
PVOID pEntityBuffer;
|
|
ULONG EntityBufferLength;
|
|
PULONG pBytesReturned;
|
|
LPOVERLAPPED pOverlapped;
|
|
|
|
} IN_IOCTL_UL_RECEIVE_HTTP_REQUEST_ENTITY_BODY, *PIN_IOCTL_UL_RECEIVE_HTTP_REQUEST_ENTITY_BODY;
|
|
|
|
|
|
typedef struct _IN_IOCTL_UL_SEND_HTTP_RESPONSE_HEADERS
|
|
{
|
|
ULONG ulSize; // used for structure validation
|
|
HANDLE AppPoolHandle;
|
|
UL_HTTP_REQUEST_ID RequestId;
|
|
ULONG Flags;
|
|
PVOID pResponseBuffer; // PUL_HTTP_RESPONSE
|
|
ULONG ResponseBufferLength;
|
|
ULONG EntityChunkCount;
|
|
PVOID pEntityChunks; // PUL_DATA_CHUNK
|
|
PVOID pCachePolicy; // PUL_CACHE_POLICY
|
|
PULONG pBytesSent;
|
|
LPOVERLAPPED pOverlapped;
|
|
|
|
} IN_IOCTL_UL_SEND_HTTP_RESPONSE_HEADERS, *PIN_IOCTL_UL_SEND_HTTP_RESPONSE_HEADERS;
|
|
|
|
|
|
typedef struct _IN_IOCTL_UL_SEND_HTTP_RESPONSE_ENTITY_BODY
|
|
{
|
|
ULONG ulSize; // used for structure validation
|
|
HANDLE AppPoolHandle;
|
|
UL_HTTP_REQUEST_ID RequestId;
|
|
ULONG Flags;
|
|
ULONG EntityChunkCount;
|
|
PVOID pEntityChunks; // PUL_DATA_CHUNK
|
|
PULONG pBytesSent;
|
|
LPOVERLAPPED pOverlapped;
|
|
|
|
} IN_IOCTL_UL_SEND_HTTP_RESPONSE_ENTITY_BODY, *PIN_IOCTL_UL_SEND_HTTP_RESPONSE_ENTITY_BODY;
|
|
|
|
|
|
typedef struct _IN_IOCTL_UL_RECEIVE_HTTP_RESPONSE_HEADERS
|
|
{
|
|
ULONG ulSize; // used for structure validation
|
|
UL_HTTP_REQUEST_ID RequestId;
|
|
ULONG Flags;
|
|
PVOID pResponseBuffer; // PUL_HTTP_RESPONSE
|
|
ULONG ResponseBufferLength;
|
|
ULONG EntityChunkCount;
|
|
PVOID pEntityChunks; // PUL_DATA_CHUNK
|
|
PVOID pCachePolicy; // PUL_CACHE_POLICY
|
|
PULONG pBytesSent;
|
|
LPOVERLAPPED pOverlapped;
|
|
|
|
} IN_IOCTL_UL_RECEIVE_HTTP_RESPONSE_HEADERS, *PIN_IOCTL_UL_RECEIVE_HTTP_RESPONSE_HEADERS;
|
|
|
|
|
|
typedef struct _IN_IOCTL_UL_RECEIVE_HTTP_RESPONSE_ENTITY_BODY
|
|
{
|
|
ULONG ulSize; // used for structure validation
|
|
UL_HTTP_REQUEST_ID RequestId;
|
|
ULONG Flags;
|
|
PVOID pEntityBuffer;
|
|
ULONG EntityBufferLength;
|
|
PULONG pBytesSent;
|
|
LPOVERLAPPED pOverlapped;
|
|
|
|
} IN_IOCTL_UL_RECEIVE_HTTP_RESPONSE_ENTITY_BODY, *PIN_IOCTL_UL_RECEIVE_HTTP_RESPONSE_ENTITY_BODY;
|
|
|
|
|
|
|
|
#endif // _STRUCTS_H_
|
|
|