156 lines
4.7 KiB
C
156 lines
4.7 KiB
C
|
/*
|
||
|
* tdiinfo.h Transport driver interface information definitions
|
||
|
*
|
||
|
* =========================================================================
|
||
|
*
|
||
|
* Open Watcom Project
|
||
|
*
|
||
|
* Copyright (c) 2004-2010 The Open Watcom Contributors. All Rights Reserved.
|
||
|
*
|
||
|
* This file is automatically generated. Do not edit directly.
|
||
|
*
|
||
|
* =========================================================================
|
||
|
*/
|
||
|
|
||
|
#ifndef TDI_INFO_INCLUDED
|
||
|
#define TDI_INFO_INCLUDED
|
||
|
|
||
|
#ifndef _ENABLE_AUTODEPEND
|
||
|
#pragma read_only_file;
|
||
|
#endif
|
||
|
|
||
|
#ifdef __cplusplus
|
||
|
extern "C" {
|
||
|
#endif
|
||
|
|
||
|
/* Primitive data types */
|
||
|
#ifndef CTE_TYPEDEFS_DEFINED
|
||
|
#define CTE_TYPEDEFS_DEFINED
|
||
|
typedef unsigned long ulong;
|
||
|
typedef unsigned short ushort;
|
||
|
typedef unsigned char uchar;
|
||
|
typedef unsigned int uint;
|
||
|
#endif
|
||
|
|
||
|
/* Maximum number of transport driver interface entities */
|
||
|
#define MAX_TDI_ENTITIES 4096
|
||
|
|
||
|
/* Information classes */
|
||
|
#define INFO_CLASS_GENERIC 0x00000100L
|
||
|
#define INFO_CLASS_PROTOCOL 0x00000200L
|
||
|
#define INFO_CLASS_IMPLEMENTATION 0x00000300L
|
||
|
|
||
|
/* Information types */
|
||
|
#define INFO_TYPE_PROVIDER 0x00000100L
|
||
|
#define INFO_TYPE_ADDRESS_OBJECT 0x00000200L
|
||
|
#define INFO_TYPE_CONNECTION 0x00000300L
|
||
|
|
||
|
/* Entity list identifier */
|
||
|
#define ENTITY_LIST_ID 0L
|
||
|
|
||
|
/* Entities */
|
||
|
#define GENERIC_ENTITY 0x00000000L
|
||
|
#define CO_TL_ENTITY 0x00000400L
|
||
|
#define CL_TL_ENTITY 0x00000401L
|
||
|
#define ER_ENTITY 0x00000380L
|
||
|
#define CO_NL_ENTITY 0x00000300L
|
||
|
#define CL_NL_ENTITY 0x00000301L
|
||
|
#define AT_ENTITY 0x00000280L
|
||
|
#define IF_ENTITY 0x00000200L
|
||
|
|
||
|
/* Entity instance special value */
|
||
|
#define INVALID_ENTITY_INSTANCE (-1)
|
||
|
|
||
|
/* Context size */
|
||
|
#define CONTEXT_SIZE 16
|
||
|
|
||
|
/* Entity type identifiers */
|
||
|
#define ENTITY_TYPE_ID 1
|
||
|
#define CO_TL_NBF 0x00000400L
|
||
|
#define CO_TL_SPX 0x00000402L
|
||
|
#define CO_TL_TCP 0x00000404L
|
||
|
#define CO_TL_SPP 0x00000406L
|
||
|
#define CL_TL_NBF 0x00000401L
|
||
|
#define CO_TL_UDP 0x00000403L
|
||
|
#define ER_ICMP 0x00000380L
|
||
|
#define CL_NL_IPX 0x00000301L
|
||
|
#define CL_NL_IP 0x00000303L
|
||
|
#define AT_ARP 0x00000280L
|
||
|
#define AT_NULL 0x00000282L
|
||
|
#define IF_GENERIC 0x00000200L
|
||
|
#define IF_MIB 0x00000202L
|
||
|
|
||
|
/* Transport driver interface device I/O control codes */
|
||
|
#define IOCTL_TDI_TL_IO_CONTROL_ENDPOINT \
|
||
|
CTL_CODE( FILE_DEVICE_TRANSPORT, 14, METHOD_BUFFERED, FILE_ANY_ACCESS )
|
||
|
|
||
|
/* Transport driver interface entity identifier */
|
||
|
typedef struct TDIEntityID {
|
||
|
ulong tei_entity;
|
||
|
ulong tei_instance;
|
||
|
} TDIEntityID;
|
||
|
|
||
|
/* Transport driver interface object identifier */
|
||
|
typedef struct TDIObjectID {
|
||
|
TDIEntityID toi_entity;
|
||
|
ulong toi_class;
|
||
|
ulong toi_type;
|
||
|
ulong toi_id;
|
||
|
} TDIObjectID;
|
||
|
|
||
|
/* TCP request query information (extended version) */
|
||
|
typedef struct tcp_request_query_information_ex_xp {
|
||
|
TDIObjectID ID;
|
||
|
ULONG_PTR Context[CONTEXT_SIZE / sizeof( ULONG_PTR )];
|
||
|
} TCP_REQUEST_QUERY_INFORMATION_EX_XP;
|
||
|
typedef TCP_REQUEST_QUERY_INFORMATION_EX_XP *PTCP_REQUEST_QUERY_INFORMATION_EX_XP;
|
||
|
typedef struct tcp_request_query_information_ex_w2k {
|
||
|
TDIObjectID ID;
|
||
|
uchar Context[CONTEXT_SIZE];
|
||
|
} TCP_REQUEST_QUERY_INFORMATION_EX_W2K;
|
||
|
typedef TCP_REQUEST_QUERY_INFORMATION_EX_W2K *PTCP_REQUEST_QUERY_INFORMATION_EX_W2K;
|
||
|
#if (NTDDI_VERSION >= 0x05010000)
|
||
|
typedef TCP_REQUEST_QUERY_INFORMATION_EX_XP TCP_REQUEST_QUERY_INFORMATION_EX;
|
||
|
#else
|
||
|
typedef TCP_REQUEST_QUERY_INFORMATION_EX_W2K TCP_REQUEST_QUERY_INFORMATION_EX;
|
||
|
#endif
|
||
|
typedef TCP_REQUEST_QUERY_INFORMATION_EX *PTCP_REQUEST_QUERY_INFORMATION_EX;
|
||
|
|
||
|
/* TCP request set information (extended version) */
|
||
|
typedef struct tcp_request_set_information_ex {
|
||
|
TDIObjectID ID;
|
||
|
unsigned int BufferSize;
|
||
|
unsigned char Buffer[1];
|
||
|
} TCP_REQUEST_SET_INFORMATION_EX;
|
||
|
typedef TCP_REQUEST_SET_INFORMATION_EX *PTCP_REQUEST_SET_INFORMATION_EX;
|
||
|
|
||
|
/* Transport driver interface TL I/O control types */
|
||
|
typedef enum {
|
||
|
EndpointIoControlType = 0,
|
||
|
SetSockOptIoControlType = 1,
|
||
|
GetSockOptIoControlType = 2,
|
||
|
SocketIoControlType = 3
|
||
|
} TDI_TL_IO_CONTROL_TYPE;
|
||
|
typedef TDI_TL_IO_CONTROL_TYPE *PTDI_TL_IO_CONTROL_TYPE;
|
||
|
|
||
|
/* Transport driver interface TL I/O control endpoint */
|
||
|
typedef struct _TDI_TL_IO_CONTROL_ENDPOINT {
|
||
|
TDI_TL_IO_CONTROL_TYPE Type;
|
||
|
ULONG Level;
|
||
|
union {
|
||
|
ULONG IoControlCode;
|
||
|
ULONG OptionName;
|
||
|
};
|
||
|
PVOID InputBuffer;
|
||
|
ULONG InputBufferLength;
|
||
|
PVOID OutputBuffer;
|
||
|
ULONG OutputBufferLength;
|
||
|
} TDI_TL_IO_CONTROL_ENDPOINT;
|
||
|
typedef TDI_TL_IO_CONTROL_ENDPOINT *PTDI_TL_IO_CONTROL_ENDPOINT;
|
||
|
|
||
|
#ifdef __cplusplus
|
||
|
} /* extern "C" */
|
||
|
#endif
|
||
|
|
||
|
#endif /* TDI_INFO_INCLUDED */
|