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

📄 tdikrnl.h

📁 MinGW+MSYS开发必用的api参考
💻 H
📖 第 1 页 / 共 3 页
字号:
/* * tdikrnl.h * * TDI kernel 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 __TDIKRNL_H#define __TDIKRNL_H#if __GNUC__ >=3#pragma GCC system_header#endif#ifdef __cplusplusextern "C" {#endif#include "ntddk.h"#include "tdi.h"#if defined(_TDI_)  #define TDIKRNLAPI DECLSPEC_EXPORT#else  #define TDIKRNLAPI DECLSPEC_IMPORT#endiftypedef struct _TDI_REQUEST_KERNEL {  ULONG  RequestFlags;  PTDI_CONNECTION_INFORMATION  RequestConnectionInformation;  PTDI_CONNECTION_INFORMATION  ReturnConnectionInformation;  PVOID  RequestSpecific;} TDI_REQUEST_KERNEL, *PTDI_REQUEST_KERNEL;/* Request codes */#define TDI_ASSOCIATE_ADDRESS             0x01#define TDI_DISASSOCIATE_ADDRESS          0x02#define TDI_CONNECT                       0x03#define TDI_LISTEN                        0x04#define TDI_ACCEPT                        0x05#define TDI_DISCONNECT                    0x06#define TDI_SEND                          0x07#define TDI_RECEIVE                       0x08#define TDI_SEND_DATAGRAM                 0x09#define TDI_RECEIVE_DATAGRAM              0x0A#define TDI_SET_EVENT_HANDLER             0x0B#define TDI_QUERY_INFORMATION             0x0C#define TDI_SET_INFORMATION               0x0D#define TDI_ACTION                        0x0E#define TDI_DIRECT_SEND                   0x27#define TDI_DIRECT_SEND_DATAGRAM          0x29#define TDI_TRANSPORT_ADDRESS_FILE        1#define TDI_CONNECTION_FILE               2#define TDI_CONTROL_CHANNEL_FILE          3/* Internal TDI IOCTLS */#define IOCTL_TDI_QUERY_DIRECT_SEND_HANDLER   _TDI_CONTROL_CODE(0x80, METHOD_NEITHER)#define IOCTL_TDI_QUERY_DIRECT_SENDDG_HANDLER _TDI_CONTROL_CODE(0x81, METHOD_NEITHER)/* TdiAssociateAddress */typedef struct _TDI_REQUEST_KERNEL_ASSOCIATE {  HANDLE  AddressHandle;} TDI_REQUEST_KERNEL_ASSOCIATE, *PTDI_REQUEST_KERNEL_ASSOCIATE;/* TdiDisassociateAddress */typedef TDI_REQUEST_KERNEL TDI_REQUEST_KERNEL_DISASSOCIATE,  *PTDI_REQUEST_KERNEL_DISASSOCIATE;/* TdiAccept */typedef struct _TDI_REQUEST_KERNEL_ACCEPT {  PTDI_CONNECTION_INFORMATION  RequestConnectionInformation;  PTDI_CONNECTION_INFORMATION  ReturnConnectionInformation;} TDI_REQUEST_KERNEL_ACCEPT, *PTDI_REQUEST_KERNEL_ACCEPT;/* TdiConnect */typedef TDI_REQUEST_KERNEL TDI_REQUEST_KERNEL_CONNECT,  *PTDI_REQUEST_KERNEL_CONNECT;/* TdiDisconnect */typedef TDI_REQUEST_KERNEL TDI_REQUEST_KERNEL_DISCONNECT,  *PTDI_REQUEST_KERNEL_DISCONNECT;/* TdiListen */typedef TDI_REQUEST_KERNEL TDI_REQUEST_KERNEL_LISTEN,  *PTDI_REQUEST_KERNEL_LISTEN;/* TdiReceive */typedef struct _TDI_REQUEST_KERNEL_RECEIVE {  ULONG  ReceiveLength;  ULONG  ReceiveFlags;} TDI_REQUEST_KERNEL_RECEIVE, *PTDI_REQUEST_KERNEL_RECEIVE;/* TdiReceiveDatagram */typedef struct _TDI_REQUEST_KERNEL_RECEIVEDG {  ULONG  ReceiveLength;  PTDI_CONNECTION_INFORMATION  ReceiveDatagramInformation;  PTDI_CONNECTION_INFORMATION  ReturnDatagramInformation;  ULONG  ReceiveFlags;} TDI_REQUEST_KERNEL_RECEIVEDG, *PTDI_REQUEST_KERNEL_RECEIVEDG;/* TdiSend */typedef struct _TDI_REQUEST_KERNEL_SEND {  ULONG  SendLength;  ULONG  SendFlags;} TDI_REQUEST_KERNEL_SEND, *PTDI_REQUEST_KERNEL_SEND;/* TdiSendDatagram */typedef struct _TDI_REQUEST_KERNEL_SENDDG {  ULONG  SendLength;  PTDI_CONNECTION_INFORMATION  SendDatagramInformation;} TDI_REQUEST_KERNEL_SENDDG, *PTDI_REQUEST_KERNEL_SENDDG;/* TdiSetEventHandler */typedef struct _TDI_REQUEST_KERNEL_SET_EVENT {  LONG  EventType;  PVOID  EventHandler;  PVOID  EventContext;} TDI_REQUEST_KERNEL_SET_EVENT, *PTDI_REQUEST_KERNEL_SET_EVENT;/* TdiQueryInformation */typedef struct _TDI_REQUEST_KERNEL_QUERY_INFO {  LONG  QueryType;  PTDI_CONNECTION_INFORMATION  RequestConnectionInformation;} TDI_REQUEST_KERNEL_QUERY_INFORMATION, *PTDI_REQUEST_KERNEL_QUERY_INFORMATION;/* TdiSetInformation */typedef struct _TDI_REQUEST_KERNEL_SET_INFO {  LONG  SetType;  PTDI_CONNECTION_INFORMATION  RequestConnectionInformation;} TDI_REQUEST_KERNEL_SET_INFORMATION, *PTDI_REQUEST_KERNEL_SET_INFORMATION;/* Event types */#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#define TDI_EVENT_CHAINED_RECEIVE           7#define TDI_EVENT_CHAINED_RECEIVE_DATAGRAM  8#define TDI_EVENT_CHAINED_RECEIVE_EXPEDITED 9#define TDI_EVENT_ERROR_EX                  10typedef NTSTATUS DDKAPI(*PTDI_IND_CONNECT)(  /*IN*/ PVOID  TdiEventContext,  /*IN*/ LONG  RemoteAddressLength,  /*IN*/ PVOID  RemoteAddress,  /*IN*/ LONG  UserDataLength,  /*IN*/ PVOID  UserData,  /*IN*/ LONG  OptionsLength,  /*IN*/ PVOID  Options,  /*OUT*/ CONNECTION_CONTEXT  *ConnectionContext,  /*OUT*/ PIRP  *AcceptIrp);TDIKRNLAPINTSTATUSDDKAPITdiDefaultConnectHandler(  /*IN*/ PVOID  TdiEventContext,  /*IN*/ LONG  RemoteAddressLength,  /*IN*/ PVOID  RemoteAddress,  /*IN*/ LONG  UserDataLength,  /*IN*/ PVOID  UserData,  /*IN*/ LONG  OptionsLength,  /*IN*/ PVOID  Options,  /*OUT*/ CONNECTION_CONTEXT *ConnectionContext,  /*OUT*/ PIRP  *AcceptIrp);typedef NTSTATUS DDKAPI(*PTDI_IND_DISCONNECT)(  /*IN*/ PVOID  TdiEventContext,  /*IN*/ CONNECTION_CONTEXT  ConnectionContext,  /*IN*/ LONG  DisconnectDataLength,  /*IN*/ PVOID  DisconnectData,  /*IN*/ LONG  DisconnectInformationLength,  /*IN*/ PVOID  DisconnectInformation,  /*IN*/ ULONG  DisconnectFlags);TDIKRNLAPINTSTATUSDDKAPITdiDefaultDisconnectHandler(  /*IN*/ PVOID  TdiEventContext,  /*IN*/ CONNECTION_CONTEXT  ConnectionContext,  /*IN*/ LONG  DisconnectDataLength,  /*IN*/ PVOID  DisconnectData,  /*IN*/ LONG  DisconnectInformationLength,  /*IN*/ PVOID  DisconnectInformation,  /*IN*/ ULONG  DisconnectFlags);typedef NTSTATUS DDKAPI(*PTDI_IND_ERROR)(  /*IN*/ PVOID  TdiEventContext,  /*IN*/ NTSTATUS  Status);typedef NTSTATUS DDKAPI(*PTDI_IND_ERROR_EX)(  /*IN*/ PVOID  TdiEventContext,  /*IN*/ NTSTATUS  Status,  /*IN*/ PVOID  Buffer);TDIKRNLAPINTSTATUSDDKAPITdiDefaultErrorHandler(  /*IN*/ PVOID  TdiEventContext,  /*IN*/ NTSTATUS  Status);typedef NTSTATUS DDKAPI(*PTDI_IND_RECEIVE)(  /*IN*/ PVOID  TdiEventContext,  /*IN*/ CONNECTION_CONTEXT  ConnectionContext,  /*IN*/ ULONG  ReceiveFlags,  /*IN*/ ULONG  BytesIndicated,  /*IN*/ ULONG  BytesAvailable,  /*OUT*/ ULONG  *BytesTaken,  /*IN*/ PVOID  Tsdu,  /*OUT*/ PIRP  *IoRequestPacket);TDIKRNLAPINTSTATUSDDKAPITdiDefaultReceiveHandler(  /*IN*/ PVOID  TdiEventContext,  /*IN*/ CONNECTION_CONTEXT  ConnectionContext,  /*IN*/ ULONG  ReceiveFlags,  /*IN*/ ULONG  BytesIndicated,  /*IN*/ ULONG  BytesAvailable,  /*OUT*/ ULONG  *BytesTaken,  /*IN*/ PVOID  Tsdu,  /*OUT*/ PIRP  *IoRequestPacket);typedef NTSTATUS DDKAPI(*PTDI_IND_RECEIVE_DATAGRAM)(  /*IN*/ PVOID  TdiEventContext,  /*IN*/ LONG  SourceAddressLength,  /*IN*/ PVOID  SourceAddress,  /*IN*/ LONG  OptionsLength,  /*IN*/ PVOID  Options,  /*IN*/ ULONG  ReceiveDatagramFlags,  /*IN*/ ULONG  BytesIndicated,  /*IN*/ ULONG  BytesAvailable,  /*OUT*/ ULONG  *BytesTaken,  /*IN*/ PVOID  Tsdu,  /*OUT*/ PIRP  *IoRequestPacket);TDIKRNLAPINTSTATUS DDKAPITdiDefaultRcvDatagramHandler(  /*IN*/ PVOID  TdiEventContext,  /*IN*/ LONG  SourceAddressLength,  /*IN*/ PVOID  SourceAddress,  /*IN*/ LONG  OptionsLength,  /*IN*/ PVOID  Options,  /*IN*/ ULONG  ReceiveDatagramFlags,  /*IN*/ ULONG  BytesIndicated,  /*IN*/ ULONG  BytesAvailable,  /*OUT*/ ULONG  *BytesTaken,  /*IN*/ PVOID  Tsdu,  /*OUT*/ PIRP  *IoRequestPacket);typedef NTSTATUS DDKAPI(*PTDI_IND_RECEIVE_EXPEDITED)(  /*IN*/ PVOID  TdiEventContext,  /*IN*/ CONNECTION_CONTEXT  ConnectionContext,  /*IN*/ ULONG  ReceiveFlags,  /*IN*/ ULONG  BytesIndicated,  /*IN*/ ULONG  BytesAvailable,  /*OUT*/ ULONG  *BytesTaken,  /*IN*/ PVOID  Tsdu,  /*OUT*/ PIRP  *IoRequestPacket);TDIKRNLAPINTSTATUSDDKAPITdiDefaultRcvExpeditedHandler(  /*IN*/ PVOID  TdiEventContext,  /*IN*/ CONNECTION_CONTEXT  ConnectionContext,  /*IN*/ ULONG  ReceiveFlags,  /*IN*/ ULONG  BytesIndicated,  /*IN*/ ULONG  BytesAvailable,  /*OUT*/ ULONG  *BytesTaken,  /*IN*/ PVOID  Tsdu,  /*OUT*/ PIRP  *IoRequestPacket);typedef NTSTATUS DDKAPI(*PTDI_IND_CHAINED_RECEIVE)(  /*IN*/ PVOID  TdiEventContext,  /*IN*/ CONNECTION_CONTEXT  ConnectionContext,  /*IN*/ ULONG  ReceiveFlags,  /*IN*/ ULONG  ReceiveLength,  /*IN*/ ULONG  StartingOffset,  /*IN*/ PMDL  Tsdu,  /*IN*/ PVOID  TsduDescriptor);TDIKRNLAPINTSTATUSDDKAPITdiDefaultChainedReceiveHandler(  /*IN*/ PVOID  TdiEventContext,  /*IN*/ CONNECTION_CONTEXT  ConnectionContext,  /*IN*/ ULONG  ReceiveFlags,  /*IN*/ ULONG  ReceiveLength,  /*IN*/ ULONG  StartingOffset,  /*IN*/ PMDL  Tsdu,  /*IN*/ PVOID  TsduDescriptor);typedef NTSTATUS DDKAPI(*PTDI_IND_CHAINED_RECEIVE_DATAGRAM)(  /*IN*/ PVOID  TdiEventContext,  /*IN*/ LONG  SourceAddressLength,  /*IN*/ PVOID  SourceAddress,  /*IN*/ LONG  OptionsLength,  /*IN*/ PVOID  Options,  /*IN*/ ULONG  ReceiveDatagramFlags,  /*IN*/ ULONG  ReceiveDatagramLength,  /*IN*/ ULONG  StartingOffset,  /*IN*/ PMDL  Tsdu,  /*IN*/ PVOID  TsduDescriptor);TDIKRNLAPINTSTATUSDDKAPITdiDefaultChainedRcvDatagramHandler(  /*IN*/ PVOID  TdiEventContext,  /*IN*/ LONG  SourceAddressLength,  /*IN*/ PVOID  SourceAddress,  /*IN*/ LONG  OptionsLength,  /*IN*/ PVOID  Options,  /*IN*/ ULONG  ReceiveDatagramFlags,  /*IN*/ ULONG  ReceiveDatagramLength,  /*IN*/ ULONG  StartingOffset,  /*IN*/ PMDL  Tsdu,  /*IN*/ PVOID  TsduDescriptor);typedef NTSTATUS DDKAPI(*PTDI_IND_CHAINED_RECEIVE_EXPEDITED)(  /*IN*/ PVOID  TdiEventContext,  /*IN*/ CONNECTION_CONTEXT  ConnectionContext,  /*IN*/ ULONG  ReceiveFlags,  /*IN*/ ULONG  ReceiveLength,  /*IN*/ ULONG  StartingOffset,  /*IN*/ PMDL  Tsdu,  /*IN*/ PVOID  TsduDescriptor);TDIKRNLAPINTSTATUSDDKAPITdiDefaultChainedRcvExpeditedHandler(  /*IN*/ PVOID  TdiEventContext,  /*IN*/ CONNECTION_CONTEXT  ConnectionContext,  /*IN*/ ULONG  ReceiveFlags,  /*IN*/ ULONG  ReceiveLength,  /*IN*/ ULONG  StartingOffset,  /*IN*/ PMDL  Tsdu,  /*IN*/ PVOID  TsduDescriptor);typedef NTSTATUS DDKAPI(*PTDI_IND_SEND_POSSIBLE)(  /*IN*/ PVOID  TdiEventContext,  /*IN*/ PVOID  ConnectionContext,  /*IN*/ ULONG  BytesAvailable);TDIKRNLAPINTSTATUSDDKAPITdiDefaultSendPossibleHandler(

⌨️ 快捷键说明

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