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

📄 tdikrnl.h

📁 MinGW+MSYS开发必用的api参考
💻 H
📖 第 1 页 / 共 3 页
字号:
  /*IN*/ PVOID  TdiEventContext,  /*IN*/ PVOID  ConnectionContext,  /*IN*/ ULONG  BytesAvailable);  /* Macros and functions to build IRPs */#define TdiBuildBaseIrp(                                                  \  bIrp, bDevObj, bFileObj, bCompRoutine, bContxt, bIrpSp, bMinor)         \{                                                                         \  bIrpSp->MajorFunction = IRP_MJ_INTERNAL_DEVICE_CONTROL;                 \  bIrpSp->MinorFunction = (bMinor);                                       \  bIrpSp->DeviceObject  = (bDevObj);                                      \  bIrpSp->FileObject    = (bFileObj);                                     \  if (bCompRoutine)                                                       \    IoSetCompletionRoutine(bIrp, bCompRoutine, bContxt, TRUE, TRUE, TRUE) \  else                                                                    \    IoSetCompletionRoutine(bIrp, NULL, NULL, FALSE, FALSE, FALSE);        \}  /* * VOID * TdiBuildAccept( * IN PIRP  Irp, * IN PDEVICE_OBJECT  DevObj, * IN PFILE_OBJECT  FileObj, * IN PVOID  CompRoutine, * IN PVOID  Contxt, * IN PTDI_CONNECTION_INFORMATION  RequestConnectionInfo, * OUT PTDI_CONNECTION_INFORMATION  ReturnConnectionInfo); */#define TdiBuildAccept(                                             \  Irp, DevObj, FileObj, CompRoutine, Contxt,                        \  RequestConnectionInfo, ReturnConnectionInfo)                      \{                                                                   \  PTDI_REQUEST_KERNEL_ACCEPT _Request;                              \  PIO_STACK_LOCATION _IrpSp;                                        \                                                                    \  _IrpSp = IoGetNextIrpStackLocation(Irp);                          \                                                                    \  TdiBuildBaseIrp(Irp, DevObj, FileObj, CompRoutine,                \                  Contxt, _IrpSp, TDI_ACCEPT);                      \                                                                    \  _Request = (PTDI_REQUEST_KERNEL_ACCEPT)&_IrpSp->Parameters;       \  _Request->RequestConnectionInformation = (RequestConnectionInfo); \  _Request->ReturnConnectionInformation  = (ReturnConnectionInfo);  \}  /* * VOID * TdiBuildAction( * IN PIRP  Irp, * IN PDEVICE_OBJECT  DevObj, * IN PFILE_OBJECT  FileObj, * IN PVOID  CompRoutine, * IN PVOID  Contxt, * IN PMDL  MdlAddr); */#define TdiBuildAction(                               \  Irp, DevObj, FileObj, CompRoutine, Contxt, MdlAddr) \{                                                     \  PIO_STACK_LOCATION _IrpSp;                          \                                                      \  _IrpSp = IoGetNextIrpStackLocation(Irp);            \                                                      \  TdiBuildBaseIrp(Irp, DevObj, FileObj, CompRoutine,  \                  Contxt, _IrpSp, TDI_ACTION);        \                                                      \  (Irp)->MdlAddress = (MdlAddr);                      \}  /* * VOID * TdiBuildAssociateAddress( * IN PIRP  Irp, * IN PDEVICE_OBJECT  DevObj, * IN PFILE_OBJECT  FileObj, * IN PVOID  CompRoutine, * IN PVOID  Contxt, * IN HANDLE  AddrHandle); */#define TdiBuildAssociateAddress(                                \  Irp, DevObj, FileObj, CompRoutine, Contxt, AddrHandle)         \{                                                                \  PTDI_REQUEST_KERNEL_ASSOCIATE _Request;                        \  PIO_STACK_LOCATION _IrpSp;                                     \                                                                 \  _IrpSp = IoGetNextIrpStackLocation(Irp);                       \                                                                 \  TdiBuildBaseIrp(Irp, DevObj, FileObj, CompRoutine,             \                  Contxt, _IrpSp, TDI_ASSOCIATE_ADDRESS);        \                                                                 \  _Request = (PTDI_REQUEST_KERNEL_ASSOCIATE)&_IrpSp->Parameters; \  _Request->AddressHandle = (HANDLE)(AddrHandle);                \}  /* * VOID * TdiBuildConnect( * IN PIRP  Irp, * IN PDEVICE_OBJECT  DevObj, * IN PFILE_OBJECT  FileObj, * IN PVOID  CompRoutine, * IN PVOID  Contxt, * IN PLARGE_INTEGER  Time, * IN PTDI_CONNECTION_INFORMATION  RequestConnectionInfo, * OUT PTDI_CONNECTION_INFORMATION  ReturnConnectionInfo);  */#define TdiBuildConnect(                                            \  Irp, DevObj, FileObj, CompRoutine, Contxt,                        \  Time, RequestConnectionInfo, ReturnConnectionInfo)                \{                                                                   \  PTDI_REQUEST_KERNEL _Request;                                     \  PIO_STACK_LOCATION _IrpSp;                                        \                                                                    \  _IrpSp = IoGetNextIrpStackLocation(Irp);                          \                                                                    \  TdiBuildBaseIrp(Irp, DevObj, FileObj, CompRoutine,                \                  Contxt, _IrpSp, TDI_CONNECT);                     \                                                                    \  _Request = (PTDI_REQUEST_KERNEL)&_IrpSp->Parameters;              \  _Request->RequestConnectionInformation = (RequestConnectionInfo); \  _Request->ReturnConnectionInformation  = (ReturnConnectionInfo);  \  _Request->RequestSpecific              = (PVOID)(Time);           \}  /* * VOID * TdiBuildDisassociateAddress( * IN PIRP  Irp, * IN PDEVICE_OBJECT  DevObj, * IN PFILE_OBJECT  FileObj, * IN PVOID  CompRoutine, * IN PVOID  Contxt); */#define TdiBuildDisassociateAddress(                                \  Irp, DevObj, FileObj, CompRoutine, Contxt)                        \{                                                                   \  PIO_STACK_LOCATION _IrpSp;                                        \                                                                    \  _IrpSp = IoGetNextIrpStackLocation(Irp);                          \                                                                    \  TdiBuildBaseIrp(Irp, DevObj, FileObj, CompRoutine,                \                  Contxt, _IrpSp, TDI_DISASSOCIATE_ADDRESS);        \}  /* * VOID * TdiBuildDisconnect( * IN PIRP  Irp, * IN PDEVICE_OBJECT  DevObj, * IN PFILE_OBJECT  FileObj, * IN PVOID  CompRoutine, * IN PVOID  Contxt, * IN PLARGE_INTEGER  Time, * IN PULONG  Flags, * IN PTDI_CONNECTION_INFORMATION  RequestConnectionInfo, * OUT PTDI_CONNECTION_INFORMATION  ReturnConnectionInfo);  */#define TdiBuildDisconnect(                                         \  Irp, DevObj, FileObj, CompRoutine, Contxt, Time,                  \  Flags, RequestConnectionInfo, ReturnConnectionInfo)               \{                                                                   \  PTDI_REQUEST_KERNEL _Request;                                     \  PIO_STACK_LOCATION _IrpSp;                                        \                                                                    \  _IrpSp = IoGetNextIrpStackLocation(Irp);                          \                                                                    \  TdiBuildBaseIrp(Irp, DevObj, FileObj, CompRoutine,                \                  Contxt, _IrpSp, TDI_DISCONNECT);                  \                                                                    \  _Request = (PTDI_REQUEST_KERNEL)&_IrpSp->Parameters;              \  _Request->RequestConnectionInformation = (RequestConnectionInfo); \  _Request->ReturnConnectionInformation  = (ReturnConnectionInfo);  \  _Request->RequestSpecific = (PVOID)(Time);                        \  _Request->RequestFlags    = (Flags);                              \}  /* * PIRP * TdiBuildInternalDeviceControlIrp( * IN CCHAR IrpSubFunction, * IN PDEVICE_OBJECT DeviceObject, * IN PFILE_OBJECT FileObject, * IN PKEVENT Event, * IN PIO_STATUS_BLOCK IoStatusBlock); */#define TdiBuildInternalDeviceControlIrp( \  IrpSubFunction, DeviceObject,           \  FileObject, Event, IoStatusBlock)       \  IoBuildDeviceIoControlRequest(          \		0x00000003, DeviceObject,             \		NULL, 0, NULL, 0,                     \		TRUE, Event, IoStatusBlock)  /* * VOID * TdiBuildListen( * IN PIRP  Irp, * IN PDEVICE_OBJECT  DevObj, * IN PFILE_OBJECT  FileObj, * IN PVOID  CompRoutine, * IN PVOID  Contxt, * IN ULONG  Flags, * IN PTDI_CONNECTION_INFORMATION  RequestConnectionInfo, * OUT PTDI_CONNECTION_INFORMATION  ReturnConnectionInfo);  */#define TdiBuildListen(                                             \  Irp, DevObj, FileObj, CompRoutine, Contxt,                        \  Flags, RequestConnectionInfo, ReturnConnectionInfo)               \{                                                                   \  PTDI_REQUEST_KERNEL _Request;                                     \  PIO_STACK_LOCATION _IrpSp;                                        \                                                                    \  _IrpSp = IoGetNextIrpStackLocation(Irp);                          \                                                                    \  TdiBuildBaseIrp(Irp, DevObj, FileObj, CompRoutine,                \                  Contxt, _IrpSp, TDI_LISTEN);                      \                                                                    \  _Request = (PTDI_REQUEST_KERNEL)&_IrpSp->Parameters;              \  _Request->RequestConnectionInformation = (RequestConnectionInfo); \  _Request->ReturnConnectionInformation  = (ReturnConnectionInfo);  \  _Request->RequestFlags = (Flags);                                 \}TDIKRNLAPIVOIDDDKAPITdiBuildNetbiosAddress(  /*IN*/ PUCHAR  NetbiosName,  /*IN*/ BOOLEAN  IsGroupName,  /*IN OUT*/ PTA_NETBIOS_ADDRESS  NetworkName);TDIKRNLAPINTSTATUSDDKAPITdiBuildNetbiosAddressEa(  /*IN*/ PUCHAR  Buffer,  /*IN*/ BOOLEAN  IsGroupName,  /*IN*/ PUCHAR  NetbiosName);  /* * VOID * TdiBuildQueryInformation( * IN PIRP  Irp, * IN PDEVICE_OBJECT  DevObj, * IN PFILE_OBJECT  FileObj, * IN PVOID  CompRoutine, * IN PVOID  Contxt, * IN UINT  QType, * IN PMDL  MdlAddr); */#define TdiBuildQueryInformation(                                        \  Irp, DevObj, FileObj, CompRoutine, Contxt, QType, MdlAddr)             \{                                                                        \  PTDI_REQUEST_KERNEL_QUERY_INFORMATION _Request;                        \  PIO_STACK_LOCATION _IrpSp;                                             \                                                                         \  _IrpSp = IoGetNextIrpStackLocation(Irp);                               \                                                                         \  TdiBuildBaseIrp(Irp, DevObj, FileObj, CompRoutine,                     \                  Contxt, _IrpSp, TDI_QUERY_INFORMATION);                \                                                                         \  _Request = (PTDI_REQUEST_KERNEL_QUERY_INFORMATION)&_IrpSp->Parameters; \  _Request->RequestConnectionInformation = NULL;                         \  _Request->QueryType = (ULONG)(QType);                                  \  (Irp)->MdlAddress   = (MdlAddr);                                       \}  /* * VOID * TdiBuildReceive( * IN PIRP  Irp, * IN PDEVICE_OBJECT  DevObj, * IN PFILE_OBJECT  FileObj, * IN PVOID  CompRoutine, * IN PVOID  Contxt, * IN PMDL  MdlAddr, * IN ULONG  InFlags,  * IN ULONG  ReceiveLen);  */#define TdiBuildReceive(                                       \  Irp, DevObj, FileObj, CompRoutine, Contxt,                   \  MdlAddr, InFlags, ReceiveLen)                                \{                                                              \  PTDI_REQUEST_KERNEL_RECEIVE _Request;                        \  PIO_STACK_LOCATION _IrpSp;                                   \                                                               \  _IrpSp = IoGetNextIrpStackLocation(Irp);                     \                                                               \  TdiBuildBaseIrp(Irp, DevObj, FileObj, CompRoutine,           \                  Contxt, _IrpSp, TDI_RECEIVE);                \                                                               \  _Request = (PTDI_REQUEST_KERNEL_RECEIVE)&_IrpSp->Parameters; \  _Request->ReceiveFlags  = (InFlags);                         \  _Request->ReceiveLength = (ReceiveLen);                      \  (Irp)->MdlAddress       = (MdlAddr);                         \}  /* * VOID * TdiBuildReceiveDatagram( * IN PIRP  Irp, * IN PDEVICE_OBJECT  DevObj, * IN PFILE_OBJECT  FileObj, * IN PVOID  CompRoutine, * IN PVOID  Contxt, * IN PMDL  MdlAddr, * IN ULONG  ReceiveLen, * IN PTDI_CONNECTION_INFORMATION  ReceiveDatagramInfo, * OUT PTDI_CONNECTION_INFORMATION  ReturnInfo, *   ULONG InFlags);  */#define TdiBuildReceiveDatagram(                                 \  Irp, DevObj, FileObj, CompRoutine, Contxt, MdlAddr,            \  ReceiveLen, ReceiveDatagramInfo, ReturnInfo, InFlags)          \{                                                                \  PTDI_REQUEST_KERNEL_RECEIVEDG _Request;                        \  PIO_STACK_LOCATION _IrpSp;                                     \                                                                 \  _IrpSp = IoGetNextIrpStackLocation(Irp);                       \                                                                 \  TdiBuildBaseIrp(Irp, DevObj, FileObj, CompRoutine,             \                  Contxt, _IrpSp, TDI_RECEIVE_DATAGRAM);         \                                                                 \  _Request = (PTDI_REQUEST_KERNEL_RECEIVEDG)&_IrpSp->Parameters; \  _Request->ReceiveDatagramInformation = (ReceiveDatagramInfo);  \  _Request->ReturnDatagramInformation  = (ReturnInfo);           \  _Request->ReceiveLength = (ReceiveLen);                        \  _Request->ReceiveFlags  = (InFlags);                           \  (Irp)->MdlAddress       = (MdlAddr);                           \}  /* * VOID * TdiBuildSend( * IN PIRP  Irp, * IN PDEVICE_OBJECT  DevObj, * IN PFILE_OBJECT  FileObj, * IN PVOID  CompRoutine, * IN PVOID  Contxt, * IN PMDL  MdlAddr, * IN ULONG  InFlags, * IN ULONG  SendLen); */#define TdiBuildSend(                                       \  Irp, DevObj, FileObj, CompRoutine, Contxt,                \  MdlAddr, InFlags, SendLen)                                \{                                                           \  PTDI_REQUEST_KERNEL_SEND _Request;                        \  PIO_STACK_LOCATION _IrpSp;                                \                                                            \  _IrpSp = IoGetNextIrpStackLocation(Irp);                  \                                                            \  TdiBuildBaseIrp(Irp, DevObj, FileObj, CompRoutine,        \                  Contxt, _IrpSp, TDI_SEND);                \                                                            \  _Request = (PTDI_REQUEST_KERNEL_SEND)&_IrpSp->Parameters; \  _Request->SendFlags  = (InFlags);                         \  _Request->SendLength = (SendLen);                         \  (Irp)->MdlAddress    = (MdlAddr);                         \}  /* * VOID * TdiBuildSendDatagram( * IN PIRP  Irp, * IN PDEVICE_OBJECT  DevObj, * IN PFILE_OBJECT  FileObj, * IN PVOID  CompRoutine, * IN PVOID  Contxt, * IN PMDL  MdlAddr, * IN ULONG  SendLen, * IN PTDI_CONNECTION_INFORMATION  SendDatagramInfo);  */#define TdiBuildSendDatagram(                                 \  Irp, DevObj, FileObj, CompRoutine, Contxt,                  \  MdlAddr, SendLen, SendDatagramInfo)                         \{                                                             \  PTDI_REQUEST_KERNEL_SENDDG _Request;                        \  PIO_STACK_LOCATION _IrpSp;                                  \                                                              \  _IrpSp = IoGetNextIrpStackLocation(Irp);                    \                                                              \  TdiBuildBaseIrp(Irp, DevObj, FileObj, CompRoutine,          \                  Contxt, _IrpSp, TDI_SEND_DATAGRAM);         \                                                              \

⌨️ 快捷键说明

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