This repository has been archived on 2024-12-16. You can view files and clone it, but cannot push or open issues or pull requests.
CodeBlocksPortable/WATCOM/h/nt/ddk/tdiinfo.h

156 lines
4.7 KiB
C
Raw Normal View History

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