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