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

📄 tdikrnl.h

📁 MinGW+MSYS开发必用的api参考
💻 H
📖 第 1 页 / 共 3 页
字号:
  _Request = (PTDI_REQUEST_KERNEL_SENDDG)&_IrpSp->Parameters; \  _Request->SendDatagramInformation = (SendDatagramInfo);     \  _Request->SendLength = (SendLen);                           \  (Irp)->MdlAddress    = (MdlAddr);                           \}  /* * VOID * TdiBuildSetEventHandler( * IN PIRP  Irp, * IN PDEVICE_OBJECT  DevObj, * IN PFILE_OBJECT  FileObj, * IN PVOID  CompRoutine, * IN PVOID  Contxt, * IN INT  InEventType, * IN PVOID  InEventHandler, * IN PVOID  InEventContext); */#define TdiBuildSetEventHandler(                                 \  Irp, DevObj, FileObj, CompRoutine, Contxt,                     \  InEventType, InEventHandler, InEventContext)                   \{                                                                \  PTDI_REQUEST_KERNEL_SET_EVENT _Request;                        \  PIO_STACK_LOCATION _IrpSp;                                     \                                                                 \  _IrpSp = IoGetNextIrpStackLocation(Irp);                       \                                                                 \  TdiBuildBaseIrp(Irp, DevObj, FileObj, CompRoutine,             \                  Contxt, _IrpSp, TDI_SET_EVENT_HANDLER);        \                                                                 \  _Request = (PTDI_REQUEST_KERNEL_SET_EVENT)&_IrpSp->Parameters; \  _Request->EventType    = (InEventType);                        \  _Request->EventHandler = (PVOID)(InEventHandler);              \  _Request->EventContext = (PVOID)(InEventContext);              \}  /* * VOID * TdiBuildSetInformation( * IN PIRP  Irp, * IN PDEVICE_OBJECT  DevObj, * IN PFILE_OBJECT  FileObj, * IN PVOID  CompRoutine, * IN PVOID  Contxt, * IN UINT  SType, * IN PMDL  MdlAddr); */#define TdiBuildSetInformation(                                        \  Irp, DevObj, FileObj, CompRoutine, Contxt, SType, MdlAddr)           \{                                                                      \  PTDI_REQUEST_KERNEL_SET_INFORMATION _Request;                        \  PIO_STACK_LOCATION _IrpSp;                                           \                                                                       \  _IrpSp = IoGetNextIrpStackLocation(Irp);                             \                                                                       \  TdiBuildBaseIrp(Irp, DevObj, FileObj, CompRoutine,                   \                  Contxt, _IrpSp, TDI_SET_INFORMATION);                \                                                                       \  _Request = (PTDI_REQUEST_KERNEL_SET_INFORMATION)&_IrpSp->Parameters; \  _Request->RequestConnectionInformation = NULL;                       \  _Request->SetType = (ULONG)(SType);                                  \  (Irp)->MdlAddress = (MdlAddr);                                       \}  /* TDI20_CLIENT_INTERFACE_INFO.TdiVersion constants */#define TDI_CURRENT_MAJOR_VERSION         2#define TDI_CURRENT_MINOR_VERSION         0#define TDI_CURRENT_VERSION ((TDI_CURRENT_MINOR_VERSION) << 8 \  | (TDI_CURRENT_MAJOR_VERSION))#define TDI_VERSION_ONE                   0x0001typedef enum _TDI_PNP_OPCODE {  TDI_PNP_OP_MIN,  TDI_PNP_OP_ADD,  TDI_PNP_OP_DEL,  TDI_PNP_OP_UPDATE,  TDI_PNP_OP_PROVIDERREADY,  TDI_PNP_OP_NETREADY,  TDI_PNP_OP_ADD_IGNORE_BINDING,  TDI_PNP_OP_DELETE_IGNORE_BINDING,  TDI_PNP_OP_MAX} TDI_PNP_OPCODE;  /* TDI_PNP_CONTEXT.ContextType */#define TDI_PNP_CONTEXT_TYPE_IF_NAME            0x1#define TDI_PNP_CONTEXT_TYPE_IF_ADDR            0x2#define TDI_PNP_CONTEXT_TYPE_PDO                0x3#define TDI_PNP_CONTEXT_TYPE_FIRST_OR_LAST_IF   0x4typedef struct _TDI_PNP_CONTEXT {  USHORT  ContextSize;  USHORT  ContextType;  UCHAR  ContextData[1];} TDI_PNP_CONTEXT, *PTDI_PNP_CONTEXT;typedef VOID DDKAPI(*TDI_ADD_ADDRESS_HANDLER)(  /*IN*/ PTA_ADDRESS  Address);typedef VOID DDKAPI(*TDI_ADD_ADDRESS_HANDLER_V2)(  /*IN*/ PTA_ADDRESS  Address,  /*IN*/ PUNICODE_STRING  DeviceName,  /*IN*/ PTDI_PNP_CONTEXT  Context);typedef VOID DDKAPI(*TDI_BINDING_HANDLER)(  /*IN*/ TDI_PNP_OPCODE  PnPOpcode,  /*IN*/ PUNICODE_STRING  DeviceName,  /*IN*/ PWSTR  MultiSZBindList);typedef VOID DDKAPI(*TDI_BIND_HANDLER)(  /*IN*/ PUNICODE_STRING  DeviceName);typedef VOID DDKAPI(*TDI_DEL_ADDRESS_HANDLER)(  /*IN*/ PTA_ADDRESS  Address);typedef VOID DDKAPI(*TDI_DEL_ADDRESS_HANDLER_V2)(  /*IN*/ PTA_ADDRESS  Address,  /*IN*/ PUNICODE_STRING  DeviceName,  /*IN*/ PTDI_PNP_CONTEXT  Context);typedef NTSTATUS DDKAPI(*TDI_PNP_POWER_HANDLER)(  /*IN*/ PUNICODE_STRING  DeviceName,  /*IN*/ PNET_PNP_EVENT  PowerEvent,  /*IN*/ PTDI_PNP_CONTEXT  Context1,  /*IN*/ PTDI_PNP_CONTEXT  Context2);typedef VOID DDKAPI(*TDI_UNBIND_HANDLER)(  /*IN*/ PUNICODE_STRING  DeviceName);typedef VOID DDKAPI(*ProviderPnPPowerComplete)(  /*IN*/ PNET_PNP_EVENT  NetEvent,  /*IN*/ NTSTATUS  ProviderStatus);typedef struct _TDI20_CLIENT_INTERFACE_INFO {  _ANONYMOUS_UNION union {    _ANONYMOUS_STRUCT struct {      UCHAR  MajorTdiVersion;      UCHAR  MinorTdiVersion;    } DUMMYSTRUCTNAME;    USHORT TdiVersion;  } DUMMYUNIONNAME;  USHORT  Unused;  PUNICODE_STRING  ClientName;  TDI_PNP_POWER_HANDLER  PnPPowerHandler;  _ANONYMOUS_UNION union {    TDI_BINDING_HANDLER  BindingHandler;    _ANONYMOUS_STRUCT struct {      TDI_BIND_HANDLER  BindHandler;      TDI_UNBIND_HANDLER  UnBindHandler;    } DUMMYSTRUCTNAME;  }DUMMYUNIONNAME2;  _ANONYMOUS_UNION union {    _ANONYMOUS_STRUCT struct {      TDI_ADD_ADDRESS_HANDLER_V2  AddAddressHandlerV2;      TDI_DEL_ADDRESS_HANDLER_V2  DelAddressHandlerV2;    } DUMMYSTRUCTNAME;    _ANONYMOUS_STRUCT struct {      TDI_ADD_ADDRESS_HANDLER  AddAddressHandler;      TDI_DEL_ADDRESS_HANDLER  DelAddressHandler;    } DUMMYSTRUCTNAME2;  } DUMMYUNIONNAME3;} TDI20_CLIENT_INTERFACE_INFO, *PTDI20_CLIENT_INTERFACE_INFO;typedef TDI20_CLIENT_INTERFACE_INFO TDI_CLIENT_INTERFACE_INFO;typedef TDI_CLIENT_INTERFACE_INFO *PTDI_CLIENT_INTERFACE_INFO;  /* TDI functions */  /* * VOID * TdiCompleteRequest( * IN PIRP Irp, * IN NTSTATUS Status); */#define TdiCompleteRequest(Irp, Status)           \{                                                 \  (Irp)->IoStatus.Status = (Status);              \  IoCompleteRequest((Irp), IO_NETWORK_INCREMENT); \}TDIKRNLAPINTSTATUSDDKAPITdiCopyBufferToMdl(  /*IN*/ PVOID  SourceBuffer,  /*IN*/ ULONG  SourceOffset,  /*IN*/ ULONG  SourceBytesToCopy,  /*IN*/ PMDL  DestinationMdlChain,  /*IN*/ ULONG  DestinationOffset,  /*IN*/ PULONG  BytesCopied);  /* * VOID * TdiCopyLookaheadData( * IN PVOID  Destination, * IN PVOID  Source, * IN ULONG  Length, * IN ULONG  ReceiveFlags); */#define TdiCopyLookaheadData(Destination, Source, Length, ReceiveFlags) \  RtlCopyMemory(Destination, Source, Length)TDIKRNLAPINTSTATUSDDKAPITdiCopyMdlChainToMdlChain (  /*IN*/ PMDL  SourceMdlChain,  /*IN*/ ULONG  SourceOffset,  /*IN*/ PMDL  DestinationMdlChain,  /*IN*/ ULONG  DestinationOffset,  /*OUT*/ PULONG  BytesCopied);TDIKRNLAPINTSTATUSDDKAPITdiCopyMdlToBuffer(  /*IN*/ PMDL  SourceMdlChain,  /*IN*/ ULONG  SourceOffset,  /*IN*/ PVOID  DestinationBuffer,  /*IN*/ ULONG  DestinationOffset,  /*IN*/ ULONG  DestinationBufferSize,  /*OUT*/ PULONG  BytesCopied);TDIKRNLAPINTSTATUSDDKAPITdiDeregisterAddressChangeHandler(  /*IN*/ HANDLE  BindingHandle);TDIKRNLAPINTSTATUSDDKAPITdiDeregisterDeviceObject(  /*IN*/ HANDLE  DevRegistrationHandle);TDIKRNLAPINTSTATUSDDKAPITdiDeregisterNetAddress(  /*IN*/ HANDLE  AddrRegistrationHandle);TDIKRNLAPINTSTATUSDDKAPITdiDeregisterPnPHandlers(  /*IN*/ HANDLE  BindingHandle);TDIKRNLAPINTSTATUSDDKAPITdiDeregisterProvider(  /*IN*/ HANDLE  ProviderHandle);TDIKRNLAPINTSTATUSDDKAPITdiEnumerateAddresses(  /*IN*/ HANDLE  BindingHandle);TDIKRNLAPIVOIDDDKAPITdiInitialize(  VOID);TDIKRNLAPIVOIDDDKAPITdiMapBuffer(  /*IN*/ PMDL  MdlChain);TDIKRNLAPINTSTATUSDDKAPITdiMapUserRequest(  /*IN*/ PDEVICE_OBJECT  DeviceObject,  /*IN*/ PIRP  Irp,  /*IN*/ PIO_STACK_LOCATION  IrpSp);TDIKRNLAPIBOOLEANDDKAPITdiMatchPdoWithChainedReceiveContext(  /*IN*/ PVOID TsduDescriptor,  /*IN*/ PVOID PDO);TDIKRNLAPIVOIDDDKAPITdiPnPPowerComplete(  /*IN*/ HANDLE  BindingHandle,  /*IN*/ PNET_PNP_EVENT  PowerEvent,  /*IN*/ NTSTATUS  Status);TDIKRNLAPINTSTATUSDDKAPITdiPnPPowerRequest(  /*IN*/ PUNICODE_STRING  DeviceName,  /*IN*/ PNET_PNP_EVENT  PowerEvent,  /*IN*/ PTDI_PNP_CONTEXT  Context1,  /*IN*/ PTDI_PNP_CONTEXT  Context2,  /*IN*/ ProviderPnPPowerComplete  ProtocolCompletionHandler);TDIKRNLAPINTSTATUSDDKAPITdiProviderReady(  /*IN*/ HANDLE  ProviderHandle);TDIKRNLAPINTSTATUSDDKAPITdiRegisterAddressChangeHandler(  /*IN*/ TDI_ADD_ADDRESS_HANDLER  AddHandler,  /*IN*/ TDI_DEL_ADDRESS_HANDLER  DeleteHandler,  /*OUT*/ HANDLE  *BindingHandle);TDIKRNLAPINTSTATUSDDKAPITdiRegisterDeviceObject(  /*IN*/ PUNICODE_STRING  DeviceName,  /*OUT*/ HANDLE  *DevRegistrationHandle);TDIKRNLAPINTSTATUSDDKAPITdiRegisterNetAddress(  /*IN*/ PTA_ADDRESS  Address,  /*IN*/ PUNICODE_STRING  DeviceName,  /*IN*/ PTDI_PNP_CONTEXT  Context,  /*OUT*/ HANDLE  *AddrRegistrationHandle);TDIKRNLAPINTSTATUSDDKAPITdiRegisterNotificationHandler(  /*IN*/ TDI_BIND_HANDLER  BindHandler,  /*IN*/ TDI_UNBIND_HANDLER  UnbindHandler,  /*OUT*/ HANDLE  *BindingHandle);TDIKRNLAPINTSTATUSDDKAPITdiRegisterPnPHandlers(  /*IN*/ PTDI_CLIENT_INTERFACE_INFO  ClientInterfaceInfo,  /*IN*/ ULONG  InterfaceInfoSize,  /*OUT*/ HANDLE  *BindingHandle);TDIKRNLAPINTSTATUSDDKAPITdiRegisterProvider(  /*IN*/ PUNICODE_STRING  ProviderName,  /*OUT*/ HANDLE  *ProviderHandle);TDIKRNLAPIVOIDDDKAPITdiReturnChainedReceives(  /*IN*/ PVOID  *TsduDescriptors,  /*IN*/ ULONG   NumberOfTsdus);TDIKRNLAPIVOIDDDKAPITdiUnmapBuffer(  /*IN*/ PMDL  MdlChain);#ifdef __cplusplus}#endif#endif /* __TDIKRNL_H */

⌨️ 快捷键说明

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