TDIClient.h
上传用户:zanmei2
上传日期:2010-03-06
资源大小:775k
文件大小:3k
源码类别:

通讯编程文档

开发平台:

C/C++

  1. #ifndef __TDICLIENT_H_
  2. #define __TDICLIENT_H_
  3. #include <ntddk.h>
  4. #include <initguid.h>
  5. #include "tdi.h"
  6. #include "tdikrnl.h"
  7. #include "main.h"
  8. #define wcharNetDevName L"\Device\Udp"
  9. // Network Byte Order 0x1771 (6001) -> 0x7717
  10. #define LOCAL_PORT 0x7117
  11. // Remote peer port 6002
  12. #define REMOTE_PORT 0x7217
  13. //  Remote peer address 192.168.1.1
  14. #define REMOTE_ADDRESS 0x101a8c0
  15. NTSTATUS
  16. TDIOpenTransportAddress(
  17.                     PWSTR          pTransDevName,     // Transport device name.
  18.                     PHANDLE        pHandle,           // Output handle address.
  19.                     PFILE_OBJECT * ppAddrFileObj,     // Output address file object.
  20.                     USHORT         Port               // Port to open.
  21. );
  22. NTSTATUS
  23. TDIClnSetEventHandler(
  24.                       PFILE_OBJECT   pAddrFileObj,    // Address file object.
  25.                       PDEVICE_OBJECT pTcpDevObj,      // TDI driver's device object.
  26.                       LONG           EventType,       // Type of event.
  27.                       PVOID          pEventHandler,   // Event handler routine.
  28.                       PVOID          pEventContext    // Context for event handler.
  29.   );
  30. NTSTATUS TDIEventRecvDatagram(
  31.     IN PVOID  TdiEventContext,
  32.     IN LONG  SourceAddressLength,
  33.     IN PVOID  SourceAddress,
  34.     IN LONG  OptionsLength,
  35.     IN PVOID  Options,
  36.     IN ULONG  ReceiveDatagramFlags,
  37.     IN ULONG  BytesIndicated,
  38.     IN ULONG  BytesAvailable,
  39.     OUT ULONG  *BytesTaken,
  40.     IN PVOID  Tsdu,
  41.     OUT PIRP  *IoRequestPacket
  42.     );
  43. NTSTATUS TDIEventError(
  44.    IN PVOID TdiEventContext,  // The endpoint's file object.
  45.    IN NTSTATUS Status         // Status code indicating error type.
  46.    );
  47. NTSTATUS  TDIEventChainedReceiveDatagram(
  48.     IN PVOID  TdiEventContext,
  49.     IN LONG  SourceAddressLength,
  50.     IN PVOID  SourceAddress,
  51.     IN LONG  OptionsLength,
  52.     IN PVOID  Options,
  53.     IN ULONG  ReceiveDatagramFlags,
  54.     IN ULONG  ReceiveDatagramLength,
  55.     IN ULONG  StartingOffset,
  56.     IN PMDL  Tsdu,
  57.     IN PVOID  TsduDescriptor
  58.     );
  59. PIRP TDIBuildRecvRemainderIrp( PDEVICE_EXTENSION deviceExtension );
  60. NTSTATUS                                          
  61. TDIRecvRemainderCompRoutine(
  62. PDEVICE_OBJECT      DeviceObject, // TDI driver's device object.
  63. PIRP                pIrp,    // Address of completed Irp.
  64. PVOID               pCtx     // Pointer to context.
  65. );
  66. NTSTATUS TDIBuildRecvContext( PRECV_CONTEXT lpContext);
  67. NTSTATUS TDIFreeRecvContext( PRECV_CONTEXT lpContext );
  68. VOID CopyToRingBuffer(
  69. PDEVICE_EXTENSION deviceExtension,
  70. PUCHAR LinearBuffer,
  71. ULONG BytesIndicated );
  72. VOID TDIBuildSendDatagramInfo( PTA_ADDRESS lpAddress );
  73. #endif