| /* |
| * tdiinfo.h |
| * |
| * TDI set and query information interface |
| * |
| * This file is part of the w32api package. |
| * |
| * Contributors: |
| * Created by Casper S. Hornstrup <chorns@users.sourceforge.net> |
| * |
| * THIS SOFTWARE IS NOT COPYRIGHTED |
| * |
| * This source code is offered for use in the public domain. You may |
| * use, modify or distribute it freely. |
| * |
| * This code is distributed in the hope that it will be useful but |
| * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY |
| * DISCLAIMED. This includes but is not limited to warranties of |
| * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
| * |
| */ |
| |
| #ifndef __TDIINFO_H |
| #define __TDIINFO_H |
| |
| #ifdef __cplusplus |
| extern "C" { |
| #endif |
| |
| typedef struct _TDIEntityID { |
| ULONG tei_entity; |
| ULONG tei_instance; |
| } TDIEntityID; |
| |
| #define MAX_TDI_ENTITIES 4096 |
| #define INVALID_ENTITY_INSTANCE -1 |
| #define GENERIC_ENTITY 0 |
| #define ENTITY_LIST_ID 0 |
| #define ENTITY_TYPE_ID 1 |
| |
| #define AT_ENTITY 0x280 |
| #define CL_NL_ENTITY 0x301 |
| #define CL_TL_ENTITY 0x401 |
| #define CO_NL_ENTITY 0x300 |
| #define CO_TL_ENTITY 0x400 |
| #define ER_ENTITY 0x380 |
| #define IF_ENTITY 0x200 |
| |
| #define AT_ARP 0x280 |
| #define AT_NULL 0x282 |
| #define CL_TL_NBF 0x401 |
| #define CL_TL_UDP 0x403 |
| #define CL_NL_IPX 0x301 |
| #define CL_NL_IP 0x303 |
| #define CO_TL_NBF 0x400 |
| #define CO_TL_SPX 0x402 |
| #define CO_TL_TCP 0x404 |
| #define CO_TL_SPP 0x406 |
| #define ER_ICMP 0x380 |
| #define IF_GENERIC 0x200 |
| #define IF_MIB 0x202 |
| |
| /* TDIObjectID.toi_class constants */ |
| #define INFO_CLASS_GENERIC 0x100 |
| #define INFO_CLASS_PROTOCOL 0x200 |
| #define INFO_CLASS_IMPLEMENTATION 0x300 |
| |
| /* TDIObjectID.toi_type constants */ |
| #define INFO_TYPE_PROVIDER 0x100 |
| #define INFO_TYPE_ADDRESS_OBJECT 0x200 |
| #define INFO_TYPE_CONNECTION 0x300 |
| |
| typedef struct _TDIObjectID { |
| TDIEntityID toi_entity; |
| ULONG toi_class; |
| ULONG toi_type; |
| ULONG toi_id; |
| } TDIObjectID; |
| |
| #define CONTEXT_SIZE 16 |
| |
| typedef struct _TCP_REQUEST_QUERY_INFORMATION_EX { |
| TDIObjectID ID; |
| ULONG_PTR Context[CONTEXT_SIZE / sizeof(ULONG_PTR)]; |
| } TCP_REQUEST_QUERY_INFORMATION_EX, *PTCP_REQUEST_QUERY_INFORMATION_EX; |
| |
| #if defined(_WIN64) |
| typedef struct _TCP_REQUEST_QUERY_INFORMATION_EX32 { |
| TDIObjectID ID; |
| ULONG32 Context[CONTEXT_SIZE / sizeof(ULONG32)]; |
| } TCP_REQUEST_QUERY_INFORMATION_EX32, *PTCP_REQUEST_QUERY_INFORMATION_EX32; |
| #endif /* _WIN64 */ |
| |
| typedef struct _TCP_REQUEST_SET_INFORMATION_EX { |
| TDIObjectID ID; |
| unsigned int BufferSize; |
| unsigned char Buffer[1]; |
| } TCP_REQUEST_SET_INFORMATION_EX, *PTCP_REQUEST_SET_INFORMATION_EX; |
| |
| #ifdef __cplusplus |
| } |
| #endif |
| |
| #endif /* __TDIINFO_H */ |