2002-10-06 Casper Hornstrup <chorns@it.dk>
* include/ddk: New subdir. * lib/ddk: Ditto. * include/ddk/(atm.h, batclass.h, cfg.h, cfgmgr32.h, d4drvif.h, d4iface.h, ddkmapi.h, hidclass.h, hidpi.h, hidusage.h, mcd.h, miniport.h, minitape.h, mountdev.h, mountmgr.h, ndis.h, ndisquid.h, ndistapi.h, ndisvan.h, netevent.h, netpnp.h, netdev.h, ntapi.h, ntdd8042.h, ntddbeep.h, ntddcdrm.h, ntddcdvd.h, ntddchgr.h, ntdddisk.h, ntddk.h, ntddkbd.h, ntddmou.h, ntddndis.h, ntddpar.h, ntddpcm.h, ntddscsi.h, ntddser.h, ntddstor.h, ntddtape.h, ntddtdi.h, ntddvdeo.h, ntddvol.h, ntifs.h, ntpoapi.h, ntstatus.h, parallel.h, pfhook.h, poclass.h, scsi.h, scsiscan.h, scsiwmi.h, smbus.h, srb.h, storport.h, tdi.h, tdiinfo.h, tdikrnl.h, tdistat.h, tvout.h, upssvc.h, usb.h, usb100.h, usbcamdi.h, usbdi.h, usbioctl.h, usbiodef.h, usbscan.h, usbuser.h, video.h, videoagp.h, win2k.h, winddi.h, winddk.h, winnt4.h, winxp.h, ws2san.h, xfilter.h): New files. * lib/ddk/(Makefile.in, apcups.def, cfgmgr32.def, dxapi.def, hal.def, hid.def, hidparse.def, mcd.def, ndis.def, ntoskrnl.def, scsiport.def, tdi.def, usbcamd.def, usbcamd2.def, videoprt.def, win32k.def): Ditto.
This commit is contained in:
597
winsup/w32api/include/ddk/tdi.h
Normal file
597
winsup/w32api/include/ddk/tdi.h
Normal file
@@ -0,0 +1,597 @@
|
||||
/*
|
||||
* tdi.h
|
||||
*
|
||||
* TDI user mode definitions
|
||||
*
|
||||
* This file is part of the MinGW 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
|
||||
* DISCLAMED. This includes but is not limited to warranties of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef __TDI_H
|
||||
#define __TDI_H
|
||||
|
||||
#if __GNUC__ >=3
|
||||
#pragma GCC system_header
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#pragma pack(push,4)
|
||||
|
||||
#include "ntddk.h"
|
||||
#include "ntddtdi.h"
|
||||
#include "tdistat.h"
|
||||
#include "netpnp.h"
|
||||
|
||||
|
||||
/* Basic types */
|
||||
|
||||
typedef LONG TDI_STATUS;
|
||||
typedef PVOID CONNECTION_CONTEXT;
|
||||
|
||||
typedef struct _TDI_CONNECTION_INFORMATION {
|
||||
LONG UserDataLength;
|
||||
PVOID UserData;
|
||||
LONG OptionsLength;
|
||||
PVOID Options;
|
||||
LONG RemoteAddressLength;
|
||||
PVOID RemoteAddress;
|
||||
} TDI_CONNECTION_INFORMATION, *PTDI_CONNECTION_INFORMATION;
|
||||
|
||||
typedef struct _TDI_REQUEST {
|
||||
union {
|
||||
HANDLE AddressHandle;
|
||||
CONNECTION_CONTEXT ConnectionContext;
|
||||
HANDLE ControlChannel;
|
||||
} Handle;
|
||||
PVOID RequestNotifyObject;
|
||||
PVOID RequestContext;
|
||||
TDI_STATUS TdiStatus;
|
||||
} TDI_REQUEST, *PTDI_REQUEST;
|
||||
|
||||
typedef struct _TDI_REQUEST_STATUS {
|
||||
TDI_STATUS Status;
|
||||
PVOID RequestContext;
|
||||
ULONG BytesTransferred;
|
||||
} TDI_REQUEST_STATUS, *PTDI_REQUEST_STATUS;
|
||||
|
||||
typedef struct _TA_ADDRESS {
|
||||
USHORT AddressLength;
|
||||
USHORT AddressType;
|
||||
UCHAR Address[1];
|
||||
} TA_ADDRESS, *PTA_ADDRESS;
|
||||
|
||||
#define TDI_ADDRESS_TYPE_UNSPEC 0
|
||||
#define TDI_ADDRESS_TYPE_UNIX 1
|
||||
#define TDI_ADDRESS_TYPE_IP 2
|
||||
#define TDI_ADDRESS_TYPE_IMPLINK 3
|
||||
#define TDI_ADDRESS_TYPE_PUP 4
|
||||
#define TDI_ADDRESS_TYPE_CHAOS 5
|
||||
#define TDI_ADDRESS_TYPE_NS 6
|
||||
#define TDI_ADDRESS_TYPE_IPX 6
|
||||
#define TDI_ADDRESS_TYPE_NBS 7
|
||||
#define TDI_ADDRESS_TYPE_ECMA 8
|
||||
#define TDI_ADDRESS_TYPE_DATAKIT 9
|
||||
#define TDI_ADDRESS_TYPE_CCITT 10
|
||||
#define TDI_ADDRESS_TYPE_SNA 11
|
||||
#define TDI_ADDRESS_TYPE_DECnet 12
|
||||
#define TDI_ADDRESS_TYPE_DLI 13
|
||||
#define TDI_ADDRESS_TYPE_LAT 14
|
||||
#define TDI_ADDRESS_TYPE_HYLINK 15
|
||||
#define TDI_ADDRESS_TYPE_APPLETALK 16
|
||||
#define TDI_ADDRESS_TYPE_NETBIOS 17
|
||||
#define TDI_ADDRESS_TYPE_8022 18
|
||||
#define TDI_ADDRESS_TYPE_OSI_TSAP 19
|
||||
#define TDI_ADDRESS_TYPE_NETONE 20
|
||||
#define TDI_ADDRESS_TYPE_VNS 21
|
||||
#define TDI_ADDRESS_TYPE_NETBIOS_EX 22
|
||||
#define TDI_ADDRESS_TYPE_IP6 23
|
||||
#define TDI_ADDRESS_TYPE_NETBIOS_UNICODE_EX 24
|
||||
|
||||
#define TdiTransportAddress "TransportAddress"
|
||||
#define TdiConnectionContext "ConnectionContext"
|
||||
#define TDI_TRANSPORT_ADDRESS_LENGTH (sizeof(TdiTransportAddress) - 1)
|
||||
#define TDI_CONNECTION_CONTEXT_LENGTH (sizeof(TdiConnectionContext) - 1)
|
||||
|
||||
typedef struct _TRANSPORT_ADDRESS {
|
||||
LONG TAAddressCount;
|
||||
TA_ADDRESS Address[1];
|
||||
} TRANSPORT_ADDRESS, *PTRANSPORT_ADDRESS;
|
||||
|
||||
typedef struct _TDI_ADDRESS_INFO {
|
||||
ULONG ActivityCount;
|
||||
TRANSPORT_ADDRESS Address;
|
||||
} TDI_ADDRESS_INFO, *PTDI_ADDRESS_INFO;
|
||||
|
||||
typedef struct _TDI_ACTION_HEADER {
|
||||
ULONG TransportId;
|
||||
USHORT ActionCode;
|
||||
USHORT Reserved;
|
||||
} TDI_ACTION_HEADER, *PTDI_ACTION_HEADER;
|
||||
|
||||
typedef struct _TDI_ADDRESS_8022 {
|
||||
UCHAR MACAddress[6];
|
||||
} TDI_ADDRESS_8022, *PTDI_ADDRESS_8022;
|
||||
|
||||
#define TDI_ADDRESS_LENGTH_8022 sizeof(TDI_ADDRESS_8022);
|
||||
|
||||
typedef struct _TDI_ADDRESS_APPLETALK {
|
||||
USHORT Network;
|
||||
UCHAR Node;
|
||||
UCHAR Socket;
|
||||
} TDI_ADDRESS_APPLETALK, *PTDI_ADDRESS_APPLETALK;
|
||||
|
||||
#define TDI_ADDRESS_LENGTH_APPLETALK sizeof(TDI_ADDRESS_APPLETALK)
|
||||
|
||||
typedef struct _TDI_ADDRESS_IP {
|
||||
USHORT sin_port;
|
||||
ULONG in_addr;
|
||||
UCHAR sin_zero[8];
|
||||
} TDI_ADDRESS_IP, *PTDI_ADDRESS_IP;
|
||||
|
||||
#define TDI_ADDRESS_LENGTH_IP sizeof(TDI_ADDRESS_IP)
|
||||
|
||||
typedef struct _TDI_ADDRESS_IPX {
|
||||
ULONG NetworkAddress;
|
||||
UCHAR NodeAddress[6];
|
||||
USHORT Socket;
|
||||
} TDI_ADDRESS_IPX, *PTDI_ADDRESS_IPX;
|
||||
|
||||
#define TDI_ADDRESS_LENGTH_IPX sizeof(TDI_ADDRESS_IPX)
|
||||
|
||||
/* TDI_ADDRESS_NETBIOS.NetbiosNameType constants */
|
||||
#define TDI_ADDRESS_NETBIOS_TYPE_UNIQUE 0x0000
|
||||
#define TDI_ADDRESS_NETBIOS_TYPE_GROUP 0x0001
|
||||
#define TDI_ADDRESS_NETBIOS_TYPE_QUICK_UNIQUE 0x0002
|
||||
#define TDI_ADDRESS_NETBIOS_TYPE_QUICK_GROUP 0x0003
|
||||
|
||||
typedef struct _TDI_ADDRESS_NETBIOS {
|
||||
USHORT NetbiosNameType;
|
||||
UCHAR NetbiosName[16];
|
||||
} TDI_ADDRESS_NETBIOS, *PTDI_ADDRESS_NETBIOS;
|
||||
|
||||
#define TDI_ADDRESS_LENGTH_NETBIOS sizeof(TDI_ADDRESS_NETBIOS)
|
||||
|
||||
typedef struct _TDI_ADDRESS_NETBIOS_EX {
|
||||
UCHAR EndpointName[16];
|
||||
TDI_ADDRESS_NETBIOS NetbiosAddress;
|
||||
} TDI_ADDRESS_NETBIOS_EX, *PTDI_ADDRESS_NETBIOS_EX;
|
||||
|
||||
#define TDI_ADDRESS_LENGTH_NETBIOS_EX sizeof(TDI_ADDRESS_NETBIOS_EX)
|
||||
|
||||
/* TDI_ADDRESS_NETONE.NetoneNameType constants */
|
||||
#define TDI_ADDRESS_NETONE_TYPE_UNIQUE 0x0000
|
||||
#define TDI_ADDRESS_NETONE_TYPE_ROTORED 0x0001
|
||||
|
||||
typedef struct _TDI_ADDRESS_NETONE {
|
||||
USHORT NetoneNameType;
|
||||
UCHAR NetoneName[20];
|
||||
} TDI_ADDRESS_NETONE, *PTDI_ADDRESS_NETONE;
|
||||
|
||||
#define TDI_ADDRESS_LENGTH_NETONE sizeof(TDI_ADDRESS_NETONE)
|
||||
|
||||
typedef struct _TDI_ADDRESS_NS
|
||||
{
|
||||
ULONG NetworkAddress;
|
||||
UCHAR NodeAddress[6];
|
||||
USHORT Socket;
|
||||
} TDI_ADDRESS_NS, *PTDI_ADDRESS_NS;
|
||||
|
||||
#define TDI_ADDRESS_LENGTH_NS sizeof(TDI_ADDRESS_NS)
|
||||
|
||||
#define ISO_MAX_ADDR_LENGTH 64
|
||||
|
||||
/* TDI_ADDRESS_OSI_TSAP.tp_addr_type constants */
|
||||
#define ISO_HIERARCHICAL 0
|
||||
#define ISO_NON_HIERARCHICAL 1
|
||||
|
||||
typedef struct _TDI_ADDRESS_OSI_TSAP {
|
||||
USHORT tp_addr_type;
|
||||
USHORT tp_taddr_len;
|
||||
USHORT tp_tsel_len;
|
||||
UCHAR tp_addr[ISO_MAX_ADDR_LENGTH];
|
||||
} TDI_ADDRESS_OSI_TSAP, *PTDI_ADDRESS_OSI_TSAP;
|
||||
|
||||
#define TDI_ADDRESS_LENGTH_OSI_TSAP sizeof(TDI_ADDRESS_OSI_TSAP)
|
||||
|
||||
typedef struct _TDI_ADDRESS_VNS {
|
||||
UCHAR net_address[4];
|
||||
UCHAR subnet_addr[2];
|
||||
UCHAR port[2];
|
||||
UCHAR hops;
|
||||
UCHAR filler[5];
|
||||
} TDI_ADDRESS_VNS, *PTDI_ADDRESS_VNS;
|
||||
|
||||
#define TDI_ADDRESS_LENGTH_VNS sizeof(TDI_ADDRESS_VNS)
|
||||
|
||||
typedef struct _TDI_ADDRESS_IP6 {
|
||||
USHORT sin6_port;
|
||||
ULONG sin6_flowinfo;
|
||||
USHORT sin6_addr[8];
|
||||
ULONG sin6_scope_id;
|
||||
} TDI_ADDRESS_IP6, *PTDI_ADDRESS_IP6;
|
||||
|
||||
#define TDI_ADDRESS_LENGTH_IP6 sizeof(TDI_ADDRESS_IP6)
|
||||
|
||||
enum eNameBufferType {
|
||||
NBT_READONLY = 0,
|
||||
NBT_WRITEONLY,
|
||||
NBT_READWRITE,
|
||||
NBT_WRITTEN
|
||||
};
|
||||
|
||||
typedef struct _TDI_ADDRESS_NETBIOS_UNICODE_EX {
|
||||
USHORT NetbiosNameType;
|
||||
enum eNameBufferType NameBufferType;
|
||||
UNICODE_STRING EndpointName;
|
||||
UNICODE_STRING RemoteName;
|
||||
WCHAR EndpointBuffer[17];
|
||||
WCHAR RemoteNameBuffer[1];
|
||||
} TDI_ADDRESS_NETBIOS_UNICODE_EX, *PTDI_ADDRESS_NETBIOS_UNICODE_EX;
|
||||
|
||||
|
||||
typedef struct _TDI_CONNECT_REQUEST {
|
||||
TDI_REQUEST Request;
|
||||
PTDI_CONNECTION_INFORMATION RequestConnectionInformation;
|
||||
PTDI_CONNECTION_INFORMATION ReturnConnectionInformation;
|
||||
LARGE_INTEGER Timeout;
|
||||
} TDI_REQUEST_CONNECT, *PTDI_REQUEST_CONNECT;
|
||||
|
||||
typedef struct _TDI_REQUEST_ACCEPT {
|
||||
TDI_REQUEST Request;
|
||||
PTDI_CONNECTION_INFORMATION RequestConnectionInformation;
|
||||
PTDI_CONNECTION_INFORMATION ReturnConnectionInformation;
|
||||
} TDI_REQUEST_ACCEPT, *PTDI_REQUEST_ACCEPT;
|
||||
|
||||
typedef struct _TDI_REQUEST_LISTEN {
|
||||
TDI_REQUEST Request;
|
||||
PTDI_CONNECTION_INFORMATION RequestConnectionInformation;
|
||||
PTDI_CONNECTION_INFORMATION ReturnConnectionInformation;
|
||||
USHORT ListenFlags;
|
||||
} TDI_REQUEST_LISTEN, *PTDI_REQUEST_LISTEN;
|
||||
|
||||
typedef struct _TDI_DISCONNECT_REQUEST {
|
||||
TDI_REQUEST Request;
|
||||
LARGE_INTEGER Timeout;
|
||||
} TDI_REQUEST_DISCONNECT, *PTDI_REQUEST_DISCONNECT;
|
||||
|
||||
typedef struct _TDI_REQUEST_SEND {
|
||||
TDI_REQUEST Request;
|
||||
USHORT SendFlags;
|
||||
} TDI_REQUEST_SEND, *PTDI_REQUEST_SEND;
|
||||
|
||||
typedef struct _TDI_REQUEST_RECEIVE {
|
||||
TDI_REQUEST Request;
|
||||
USHORT ReceiveFlags;
|
||||
} TDI_REQUEST_RECEIVE, *PTDI_REQUEST_RECEIVE;
|
||||
|
||||
typedef struct _TDI_REQUEST_SEND_DATAGRAM {
|
||||
TDI_REQUEST Request;
|
||||
PTDI_CONNECTION_INFORMATION SendDatagramInformation;
|
||||
} TDI_REQUEST_SEND_DATAGRAM, *PTDI_REQUEST_SEND_DATAGRAM;
|
||||
|
||||
typedef struct _TDI_REQUEST_RECEIVE_DATAGRAM {
|
||||
TDI_REQUEST Request;
|
||||
PTDI_CONNECTION_INFORMATION ReceiveDatagramInformation;
|
||||
PTDI_CONNECTION_INFORMATION ReturnInformation;
|
||||
USHORT ReceiveFlags;
|
||||
} TDI_REQUEST_RECEIVE_DATAGRAM, *PTDI_REQUEST_RECEIVE_DATAGRAM;
|
||||
|
||||
typedef struct _TDI_REQUEST_SET_EVENT {
|
||||
TDI_REQUEST Request;
|
||||
LONG EventType;
|
||||
PVOID EventHandler;
|
||||
PVOID EventContext;
|
||||
} TDI_REQUEST_SET_EVENT_HANDLER, *PTDI_REQUEST_SET_EVENT_HANDLER;
|
||||
|
||||
#define TDI_RECEIVE_BROADCAST 0x00000004
|
||||
#define TDI_RECEIVE_MULTICAST 0x00000008
|
||||
#define TDI_RECEIVE_PARTIAL 0x00000010
|
||||
#define TDI_RECEIVE_NORMAL 0x00000020
|
||||
#define TDI_RECEIVE_EXPEDITED 0x00000040
|
||||
#define TDI_RECEIVE_PEEK 0x00000080
|
||||
#define TDI_RECEIVE_NO_RESPONSE_EXP 0x00000100
|
||||
#define TDI_RECEIVE_COPY_LOOKAHEAD 0x00000200
|
||||
#define TDI_RECEIVE_ENTIRE_MESSAGE 0x00000400
|
||||
#define TDI_RECEIVE_AT_DISPATCH_LEVEL 0x00000800
|
||||
#define TDI_RECEIVE_CONTROL_INFO 0x00001000
|
||||
|
||||
/* Listen flags *
|
||||
#define TDI_QUERY_ACCEPT 0x00000001
|
||||
|
||||
/* Options used for both SendOptions and ReceiveIndicators */
|
||||
#define TDI_SEND_EXPEDITED 0x0020
|
||||
#define TDI_SEND_PARTIAL 0x0040
|
||||
#define TDI_SEND_NO_RESPONSE_EXPECTED 0x0080
|
||||
#define TDI_SEND_NON_BLOCKING 0x0100
|
||||
#define TDI_SEND_AND_DISCONNECT 0x0200
|
||||
|
||||
/* Disconnect Flags */
|
||||
#define TDI_DISCONNECT_WAIT 0x0001
|
||||
#define TDI_DISCONNECT_ABORT 0x0002
|
||||
#define TDI_DISCONNECT_RELEASE 0x0004
|
||||
|
||||
/* TdiRequest structure for TdiQueryInformation request */
|
||||
typedef struct _TDI_REQUEST_QUERY_INFORMATION {
|
||||
TDI_REQUEST Request;
|
||||
ULONG QueryType;
|
||||
PTDI_CONNECTION_INFORMATION RequestConnectionInformation;
|
||||
} TDI_REQUEST_QUERY_INFORMATION, *PTDI_REQUEST_QUERY_INFORMATION;
|
||||
|
||||
/* TdiRequest structure for TdiSetInformation request */
|
||||
typedef struct _TDI_REQUEST_SET_INFORMATION {
|
||||
TDI_REQUEST Request;
|
||||
ULONG SetType;
|
||||
PTDI_CONNECTION_INFORMATION RequestConnectionInformation;
|
||||
} TDI_REQUEST_SET_INFORMATION, *PTDI_REQUEST_SET_INFORMATION;
|
||||
|
||||
typedef TDI_REQUEST_SET_INFORMATION TDI_REQ_SET_INFORMATION, *PTDI_REQ_SET_INFORMATION;
|
||||
|
||||
typedef union _TDI_REQUEST_TYPE {
|
||||
TDI_REQUEST_ACCEPT TdiAccept;
|
||||
TDI_REQUEST_CONNECT TdiConnect;
|
||||
TDI_REQUEST_DISCONNECT TdiDisconnect;
|
||||
TDI_REQUEST_LISTEN TdiListen;
|
||||
TDI_REQUEST_QUERY_INFORMATION TdiQueryInformation;
|
||||
TDI_REQUEST_RECEIVE TdiReceive;
|
||||
TDI_REQUEST_RECEIVE_DATAGRAM TdiReceiveDatagram;
|
||||
TDI_REQUEST_SEND TdiSend;
|
||||
TDI_REQUEST_SEND_DATAGRAM TdiSendDatagram;
|
||||
TDI_REQUEST_SET_EVENT_HANDLER TdiSetEventHandler;
|
||||
TDI_REQUEST_SET_INFORMATION TdiSetInformation;
|
||||
} TDI_REQUEST_TYPE, *PTDI_REQUEST_TYPE;
|
||||
|
||||
|
||||
/* Query information types */
|
||||
|
||||
/* Generic query info types that must be supported by all transports */
|
||||
#define TDI_QUERY_BROADCAST_ADDRESS 0x00000001
|
||||
#define TDI_QUERY_PROVIDER_INFO 0x00000002
|
||||
#define TDI_QUERY_ADDRESS_INFO 0x00000003
|
||||
#define TDI_QUERY_CONNECTION_INFO 0x00000004
|
||||
#define TDI_QUERY_PROVIDER_STATISTICS 0x00000005
|
||||
#define TDI_QUERY_DATAGRAM_INFO 0x00000006
|
||||
#define TDI_QUERY_DATA_LINK_ADDRESS 0x00000007
|
||||
#define TDI_QUERY_NETWORK_ADDRESS 0x00000008
|
||||
#define TDI_QUERY_MAX_DATAGRAM_INFO 0x00000009
|
||||
|
||||
/* Netbios specific query information types */
|
||||
#define TDI_QUERY_ADAPTER_STATUS 0x00000100
|
||||
#define TDI_QUERY_SESSION_STATUS 0x00000200
|
||||
#define TDI_QUERY_FIND_NAME 0x00000300
|
||||
|
||||
typedef struct _TA_APPLETALK_ADDR {
|
||||
LONG TAAddressCount;
|
||||
struct _AddrAtalk {
|
||||
USHORT AddressLength;
|
||||
USHORT AddressType;
|
||||
TDI_ADDRESS_APPLETALK Address[1];
|
||||
} Address[1];
|
||||
} TA_APPLETALK_ADDRESS, *PTA_APPLETALK_ADDRESS;
|
||||
|
||||
typedef struct _TA_ADDRESS_IP {
|
||||
LONG TAAddressCount;
|
||||
struct _AddrIp {
|
||||
USHORT AddressLength;
|
||||
USHORT AddressType;
|
||||
TDI_ADDRESS_IP Address[1];
|
||||
} Address[1];
|
||||
} TA_ADDRESS_IP, *PTA_ADDRESS_IP;
|
||||
|
||||
typedef struct _TA_ADDRESS_IPX {
|
||||
LONG TAAddressCount;
|
||||
struct _AddrIpx {
|
||||
USHORT AddressLength;
|
||||
USHORT AddressType;
|
||||
TDI_ADDRESS_IPX Address[1];
|
||||
} Address[1];
|
||||
} TA_IPX_ADDRESS, *PTA_IPX_ADDRESS;
|
||||
|
||||
typedef struct _TA_NETBIOS_ADDRESS {
|
||||
LONG TAAddressCount;
|
||||
struct _Addr{
|
||||
USHORT AddressLength;
|
||||
USHORT AddressType;
|
||||
TDI_ADDRESS_NETBIOS Address[1];
|
||||
} Address[1];
|
||||
} TA_NETBIOS_ADDRESS, *PTA_NETBIOS_ADDRESS;
|
||||
|
||||
typedef struct _TA_ADDRESS_NS {
|
||||
LONG TAAddressCount;
|
||||
struct _AddrNs {
|
||||
USHORT AddressLength;
|
||||
USHORT AddressType;
|
||||
TDI_ADDRESS_NS Address[1];
|
||||
} Address[1];
|
||||
} TA_NS_ADDRESS, *PTA_NS_ADDRESS;
|
||||
|
||||
typedef struct _TA_ADDRESS_VNS {
|
||||
LONG TAAddressCount;
|
||||
struct _AddrVns {
|
||||
USHORT AddressLength;
|
||||
USHORT AddressType;
|
||||
TDI_ADDRESS_VNS Address[1];
|
||||
} Address[1];
|
||||
} TA_VNS_ADDRESS, *PTA_VNS_ADDRESS;
|
||||
|
||||
typedef struct _TA_ADDRESS_IP6 {
|
||||
LONG TAAddressCount;
|
||||
struct _AddrIp6 {
|
||||
USHORT AddressLength;
|
||||
USHORT AddressType;
|
||||
TDI_ADDRESS_IP6 Address[1];
|
||||
} Address [1];
|
||||
} TA_IP6_ADDRESS, *PTA_IP6_ADDRESS;
|
||||
|
||||
typedef struct _TA_ADDRESS_NETBIOS_UNICODE_EX {
|
||||
LONG TAAddressCount;
|
||||
struct _AddrNetbiosWCharEx {
|
||||
USHORT AddressLength;
|
||||
USHORT AddressType;
|
||||
TDI_ADDRESS_NETBIOS_UNICODE_EX Address[1];
|
||||
} Address [1];
|
||||
} TA_NETBIOS_UNICODE_EX_ADDRESS, *PTA_NETBIOS_UNICODE_EX_ADDRESS;
|
||||
|
||||
|
||||
/* Structures used for TdiQueryInformation and TdiSetInformation */
|
||||
|
||||
typedef struct _TDI_ENDPOINT_INFO {
|
||||
ULONG State;
|
||||
ULONG Event;
|
||||
ULONG TransmittedTsdus;
|
||||
ULONG ReceivedTsdus;
|
||||
ULONG TransmissionErrors;
|
||||
ULONG ReceiveErrors;
|
||||
ULONG MinimumLookaheadData;
|
||||
ULONG MaximumLookaheadData;
|
||||
ULONG PriorityLevel;
|
||||
ULONG SecurityLevel;
|
||||
ULONG SecurityCompartment;
|
||||
} TDI_ENDPOINT_INFO, *PTDI_ENDPOINT_INFO;
|
||||
|
||||
typedef struct _TDI_CONNECTION_INFO {
|
||||
ULONG State;
|
||||
ULONG Event;
|
||||
ULONG TransmittedTsdus;
|
||||
ULONG ReceivedTsdus;
|
||||
ULONG TransmissionErrors;
|
||||
ULONG ReceiveErrors;
|
||||
LARGE_INTEGER Throughput;
|
||||
LARGE_INTEGER Delay;
|
||||
ULONG SendBufferSize;
|
||||
ULONG ReceiveBufferSize;
|
||||
BOOLEAN Unreliable;
|
||||
} TDI_CONNECTION_INFO, *PTDI_CONNECTION_INFO;
|
||||
|
||||
typedef struct _TDI_DATAGRAM_INFO {
|
||||
ULONG MaximumDatagramBytes;
|
||||
ULONG MaximumDatagramCount;
|
||||
} TDI_DATAGRAM_INFO, *PTDI_DATAGRAM_INFO;
|
||||
|
||||
typedef struct _TDI_MAX_DATAGRAM_INFO {
|
||||
ULONG MaxDatagramSize;
|
||||
} TDI_MAX_DATAGRAM_INFO, *PTDI_MAX_DATAGRAM_INFO;
|
||||
|
||||
typedef struct _TDI_PROVIDER_INFO {
|
||||
ULONG Version;
|
||||
ULONG MaxSendSize;
|
||||
ULONG MaxConnectionUserData;
|
||||
ULONG MaxDatagramSize;
|
||||
ULONG ServiceFlags;
|
||||
ULONG MinimumLookaheadData;
|
||||
ULONG MaximumLookaheadData;
|
||||
ULONG NumberOfResources;
|
||||
LARGE_INTEGER StartTime;
|
||||
} TDI_PROVIDER_INFO, *PTDI_PROVIDER_INFO;
|
||||
|
||||
#define TDI_SERVICE_CONNECTION_MODE 0x00000001
|
||||
#define TDI_SERVICE_ORDERLY_RELEASE 0x00000002
|
||||
#define TDI_SERVICE_CONNECTIONLESS_MODE 0x00000004
|
||||
#define TDI_SERVICE_ERROR_FREE_DELIVERY 0x00000008
|
||||
#define TDI_SERVICE_SECURITY_LEVEL 0x00000010
|
||||
#define TDI_SERVICE_BROADCAST_SUPPORTED 0x00000020
|
||||
#define TDI_SERVICE_MULTICAST_SUPPORTED 0x00000040
|
||||
#define TDI_SERVICE_DELAYED_ACCEPTANCE 0x00000080
|
||||
#define TDI_SERVICE_EXPEDITED_DATA 0x00000100
|
||||
#define TDI_SERVICE_INTERNAL_BUFFERING 0x00000200
|
||||
#define TDI_SERVICE_ROUTE_DIRECTED 0x00000400
|
||||
#define TDI_SERVICE_NO_ZERO_LENGTH 0x00000800
|
||||
#define TDI_SERVICE_POINT_TO_POINT 0x00001000
|
||||
#define TDI_SERVICE_MESSAGE_MODE 0x00002000
|
||||
#define TDI_SERVICE_HALF_DUPLEX 0x00004000
|
||||
#define TDI_SERVICE_DGRAM_CONNECTION 0x00008000
|
||||
#define TDI_SERVICE_FORCE_ACCESS_CHECK 0x00010000
|
||||
#define TDI_SERVICE_SEND_AND_DISCONNECT 0x00020000
|
||||
#define TDI_SERVICE_DIRECT_ACCEPT 0x00040000
|
||||
#define TDI_SERVICE_ACCEPT_LOCAL_ADDR 0x00080000
|
||||
|
||||
typedef struct _TDI_PROVIDER_RESOURCE_STATS {
|
||||
ULONG ResourceId;
|
||||
ULONG MaximumResourceUsed;
|
||||
ULONG AverageResourceUsed;
|
||||
ULONG ResourceExhausted;
|
||||
} TDI_PROVIDER_RESOURCE_STATS, *PTDI_PROVIDER_RESOURCE_STATS;
|
||||
|
||||
typedef struct _TDI_PROVIDER_STATISTICS {
|
||||
ULONG Version;
|
||||
ULONG OpenConnections;
|
||||
ULONG ConnectionsAfterNoRetry;
|
||||
ULONG ConnectionsAfterRetry;
|
||||
ULONG LocalDisconnects;
|
||||
ULONG RemoteDisconnects;
|
||||
ULONG LinkFailures;
|
||||
ULONG AdapterFailures;
|
||||
ULONG SessionTimeouts;
|
||||
ULONG CancelledConnections;
|
||||
ULONG RemoteResourceFailures;
|
||||
ULONG LocalResourceFailures;
|
||||
ULONG NotFoundFailures;
|
||||
ULONG NoListenFailures;
|
||||
ULONG DatagramsSent;
|
||||
LARGE_INTEGER DatagramBytesSent;
|
||||
ULONG DatagramsReceived;
|
||||
LARGE_INTEGER DatagramBytesReceived;
|
||||
ULONG PacketsSent;
|
||||
ULONG PacketsReceived;
|
||||
ULONG DataFramesSent;
|
||||
LARGE_INTEGER DataFrameBytesSent;
|
||||
ULONG DataFramesReceived;
|
||||
LARGE_INTEGER DataFrameBytesReceived;
|
||||
ULONG DataFramesResent;
|
||||
LARGE_INTEGER DataFrameBytesResent;
|
||||
ULONG DataFramesRejected;
|
||||
LARGE_INTEGER DataFrameBytesRejected;
|
||||
ULONG ResponseTimerExpirations;
|
||||
ULONG AckTimerExpirations;
|
||||
ULONG MaximumSendWindow;
|
||||
ULONG AverageSendWindow;
|
||||
ULONG PiggybackAckQueued;
|
||||
ULONG PiggybackAckTimeouts;
|
||||
LARGE_INTEGER WastedPacketSpace;
|
||||
ULONG WastedSpacePackets;
|
||||
ULONG NumberOfResources;
|
||||
TDI_PROVIDER_RESOURCE_STATS ResourceStats[1];
|
||||
} TDI_PROVIDER_STATISTICS, *PTDI_PROVIDER_STATISTICS;
|
||||
|
||||
#define TDI_EVENT_CONNECT 0
|
||||
#define TDI_EVENT_DISCONNECT 1
|
||||
#define TDI_EVENT_ERROR 2
|
||||
#define TDI_EVENT_RECEIVE 3
|
||||
#define TDI_EVENT_RECEIVE_DATAGRAM 4
|
||||
#define TDI_EVENT_RECEIVE_EXPEDITED 5
|
||||
#define TDI_EVENT_SEND_POSSIBLE 6
|
||||
|
||||
typedef struct _TDI_REQUEST_ASSOCIATE {
|
||||
TDI_REQUEST Request;
|
||||
HANDLE AddressHandle;
|
||||
} TDI_REQUEST_ASSOCIATE_ADDRESS, *PTDI_REQUEST_ASSOCIATE_ADDRESS;
|
||||
|
||||
#define NDIS_PACKET_POOL_TAG_FOR_NWLNKIPX 'iPDN'
|
||||
#define NDIS_PACKET_POOL_TAG_FOR_NWLNKSPX 'sPDN'
|
||||
#define NDIS_PACKET_POOL_TAG_FOR_NWLNKNB 'nPDN'
|
||||
#define NDIS_PACKET_POOL_TAG_FOR_TCPIP 'tPDN'
|
||||
#define NDIS_PACKET_POOL_TAG_FOR_NBF 'bPDN'
|
||||
#define NDIS_PACKET_POOL_TAG_FOR_APPLETALK 'aPDN'
|
||||
|
||||
#pragma pack(pop)
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* __TDI_H */
|
Reference in New Issue
Block a user