⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tdi.h

📁 MinGW+MSYS开发必用的api参考
💻 H
📖 第 1 页 / 共 2 页
字号:
/* * tdi.h * * TDI user mode definitions * * 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 __TDI_H#define __TDI_H#if __GNUC__ >=3#pragma GCC system_header#endif#ifdef __cplusplusextern "C" {#endif#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 _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/* 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   0x00080000typedef 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;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -