1/* 2 * tdiinfo.h 3 * 4 * TDI set and query information interface 5 * 6 * This file is part of the w32api package. 7 * 8 * Contributors: 9 * Created by Casper S. Hornstrup <chorns@users.sourceforge.net> 10 * 11 * THIS SOFTWARE IS NOT COPYRIGHTED 12 * 13 * This source code is offered for use in the public domain. You may 14 * use, modify or distribute it freely. 15 * 16 * This code is distributed in the hope that it will be useful but 17 * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY 18 * DISCLAIMED. This includes but is not limited to warranties of 19 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 20 * 21 */ 22 23#ifndef __TDIINFO_H 24#define __TDIINFO_H 25 26#ifdef __cplusplus 27extern "C" { 28#endif 29 30typedef struct _TDIEntityID { 31 ULONG tei_entity; 32 ULONG tei_instance; 33} TDIEntityID; 34 35#define MAX_TDI_ENTITIES 4096 36#define INVALID_ENTITY_INSTANCE -1 37#define GENERIC_ENTITY 0 38#define ENTITY_LIST_ID 0 39#define ENTITY_TYPE_ID 1 40 41#define AT_ENTITY 0x280 42#define CL_NL_ENTITY 0x301 43#define CL_TL_ENTITY 0x401 44#define CO_NL_ENTITY 0x300 45#define CO_TL_ENTITY 0x400 46#define ER_ENTITY 0x380 47#define IF_ENTITY 0x200 48 49#define AT_ARP 0x280 50#define AT_NULL 0x282 51#define CL_TL_NBF 0x401 52#define CL_TL_UDP 0x403 53#define CL_NL_IPX 0x301 54#define CL_NL_IP 0x303 55#define CO_TL_NBF 0x400 56#define CO_TL_SPX 0x402 57#define CO_TL_TCP 0x404 58#define CO_TL_SPP 0x406 59#define ER_ICMP 0x380 60#define IF_GENERIC 0x200 61#define IF_MIB 0x202 62 63/* TDIObjectID.toi_class constants */ 64#define INFO_CLASS_GENERIC 0x100 65#define INFO_CLASS_PROTOCOL 0x200 66#define INFO_CLASS_IMPLEMENTATION 0x300 67 68/* TDIObjectID.toi_type constants */ 69#define INFO_TYPE_PROVIDER 0x100 70#define INFO_TYPE_ADDRESS_OBJECT 0x200 71#define INFO_TYPE_CONNECTION 0x300 72 73typedef struct _TDIObjectID { 74 TDIEntityID toi_entity; 75 ULONG toi_class; 76 ULONG toi_type; 77 ULONG toi_id; 78} TDIObjectID; 79 80#define CONTEXT_SIZE 16 81 82typedef struct _TCP_REQUEST_QUERY_INFORMATION_EX { 83 TDIObjectID ID; 84 ULONG_PTR Context[CONTEXT_SIZE / sizeof(ULONG_PTR)]; 85} TCP_REQUEST_QUERY_INFORMATION_EX, *PTCP_REQUEST_QUERY_INFORMATION_EX; 86 87#if defined(_WIN64) 88typedef struct _TCP_REQUEST_QUERY_INFORMATION_EX32 { 89 TDIObjectID ID; 90 ULONG32 Context[CONTEXT_SIZE / sizeof(ULONG32)]; 91} TCP_REQUEST_QUERY_INFORMATION_EX32, *PTCP_REQUEST_QUERY_INFORMATION_EX32; 92#endif /* _WIN64 */ 93 94typedef struct _TCP_REQUEST_SET_INFORMATION_EX { 95 TDIObjectID ID; 96 unsigned int BufferSize; 97 unsigned char Buffer[1]; 98} TCP_REQUEST_SET_INFORMATION_EX, *PTCP_REQUEST_SET_INFORMATION_EX; 99 100#ifdef __cplusplus 101} 102#endif 103 104#endif /* __TDIINFO_H */ 105