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

📄 tdiclient.h

📁 好东东
💻 H
字号:
#ifndef __TDICLIENT_H_
#define __TDICLIENT_H_
#include <ntddk.h>
#include <initguid.h>
#include "tdi.h"
#include "tdikrnl.h"
#include "main.h"

#define wcharNetDevName L"\\Device\\Udp"
//	Network Byte Order 0x1771 (6001) -> 0x7717
#define LOCAL_PORT	0x7117
//	Remote peer port 6002
#define REMOTE_PORT 0x7217
//  Remote peer address 192.168.1.1
#define REMOTE_ADDRESS	0x101a8c0

NTSTATUS
TDIOpenTransportAddress(
                    PWSTR          pTransDevName,     // Transport device name.
                    PHANDLE        pHandle,           // Output handle address.
                    PFILE_OBJECT * ppAddrFileObj,     // Output address file object.
                    USHORT         Port               // Port to open.
					);
NTSTATUS
TDIClnSetEventHandler(
                      PFILE_OBJECT   pAddrFileObj,    // Address file object.
                      PDEVICE_OBJECT pTcpDevObj,      // TDI driver's device object.
                      LONG           EventType,       // Type of event.
                      PVOID          pEventHandler,   // Event handler routine.
                      PVOID          pEventContext    // Context for event handler.
					  );
NTSTATUS TDIEventRecvDatagram(
    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
    );
NTSTATUS TDIEventError(
   IN PVOID TdiEventContext,  // The endpoint's file object.
   IN NTSTATUS Status         // Status code indicating error type.
   );
NTSTATUS  TDIEventChainedReceiveDatagram(
    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
    );
PIRP TDIBuildRecvRemainderIrp( PDEVICE_EXTENSION deviceExtension );
NTSTATUS                                          
TDIRecvRemainderCompRoutine(
	PDEVICE_OBJECT      DeviceObject, // TDI driver's device object.
	PIRP                pIrp,    // Address of completed Irp.
	PVOID               pCtx     // Pointer to context.
	);
NTSTATUS TDIBuildRecvContext( PRECV_CONTEXT lpContext);
NTSTATUS TDIFreeRecvContext( PRECV_CONTEXT lpContext );
VOID CopyToRingBuffer(
	PDEVICE_EXTENSION deviceExtension,
	PUCHAR	LinearBuffer,
	ULONG	BytesIndicated );
VOID TDIBuildSendDatagramInfo( PTA_ADDRESS lpAddress );

#endif

⌨️ 快捷键说明

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