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

📄 vdfltip.h

📁 一个截取网络包的驱动。它与DDK文档正是NDIS中间驱动不同
💻 H
字号:

// VDFltIp.h - include file for VxD VDFltIp

#ifndef VDFLTIP_H
#define VDFLTIP_H

#ifndef USE_NDIS
#define USE_NDIS
#endif

#include <vtoolsc.h>

#define VDFLTIP_Major		1
#define VDFLTIP_Minor		0
#define VDFLTIP_DeviceID	UNDEFINED_DEVICE_ID
#define VDFLTIP_Init_Order	VNETBIOS_Init_Order

#define DbgPrint	dprintf

typedef
INT
(NDIS_API *RECEIVE_PACKET_HANDLER)(
	IN	NDIS_HANDLE				ProtocolBindingContext,
	IN	PNDIS_PACKET			Packet
	);

typedef
NDIS_STATUS
(NDIS_API *PNP_EVENT_HANDLER)(
	IN	NDIS_HANDLE       ProtocolBindingContext,
	IN	PVOID             NetPnPEvent
	);

typedef struct _NDIS30_PROTOCOL_CHARACTERISTICS
{
	UCHAR							MajorNdisVersion;
	UCHAR							MinorNdisVersion;
	USHORT							Filler;
	union
	{
		UINT						Reserved;
		UINT						Flags;
	};
	OPEN_ADAPTER_COMPLETE_HANDLER	OpenAdapterCompleteHandler;
	CLOSE_ADAPTER_COMPLETE_HANDLER	CloseAdapterCompleteHandler;
	SEND_COMPLETE_HANDLER			SendCompleteHandler;
	TRANSFER_DATA_COMPLETE_HANDLER	TransferDataCompleteHandler;

	RESET_COMPLETE_HANDLER			ResetCompleteHandler;
	REQUEST_COMPLETE_HANDLER		RequestCompleteHandler;
	RECEIVE_HANDLER					ReceiveHandler;
	RECEIVE_COMPLETE_HANDLER		ReceiveCompleteHandler;
	STATUS_HANDLER					StatusHandler;
	STATUS_COMPLETE_HANDLER			StatusCompleteHandler;

	UNICODE_STRING					Name;
} NDIS30_PROTOCOL_CHARACTERISTICS, *PNDIS30_PROTOCOL_CHARACTERISTICS;


typedef struct _NDIS40_PROTOCOL_CHARACTERISTICS
{
#ifdef __cplusplus
	NDIS30_PROTOCOL_CHARACTERISTICS	Ndis30Chars;
#else
	NDIS30_PROTOCOL_CHARACTERISTICS;
#endif

	RECEIVE_PACKET_HANDLER     ReceivePacketHandler;

	BIND_ADAPTER_HANDLER       BindAdapterHandler;
	UNBIND_ADAPTER_HANDLER     UnbindAdapterHandler;
	PNP_EVENT_HANDLER          PnPEventHandler;
	UNLOAD_PROTOCOL_HANDLER    UnloadProtocolHandler;

} NDIS40_PROTOCOL_CHARACTERISTICS, *PNDIS40_PROTOCOL_CHARACTERISTICS;


typedef struct _NDIS50_PROTOCOL_CHARACTERISTICS
{
#ifdef __cplusplus
	NDIS40_PROTOCOL_CHARACTERISTICS	Ndis40Chars;
#else
	NDIS40_PROTOCOL_CHARACTERISTICS;
#endif
	
	PVOID						ReservedHandlers[4];

	PVOID                      CoSendCompleteHandler;
	PVOID                      CoStatusHandler;
	PVOID                      CoReceivePacketHandler;
	PVOID                      CoAfRegisterNotifyHandler;

} NDIS50_PROTOCOL_CHARACTERISTICS, *PNDIS50_PROTOCOL_CHARACTERISTICS;

#ifndef __NdisGetVersion

enum
{
   __NdisGetVersion = (NDIS_DEVICE_ID<<16),
   __NdisAllocateSpinLock,
   __NdisFreeSpinLock,
   __NdisAcquireSpinLock,
   __NdisReleaseSpinLock,

   __NdisOpenConfiguration,
   __NdisReadConfiguration,
   __NdisCloseConfiguration,
   __NdisReadEisaSlotInformation, 
   __NdisReadMcaPosInformation,

   __NdisAllocateMemory,
   __NdisFreeMemory,
   __NdisSetTimer,
   __NdisCancelTimer,
   __NdisStallExecution,
   __NdisInitializeInterrupt,
   __NdisRemoveInterrupt,
   __NdisSynchronizeWithInterrupt,
   __NdisOpenFile,
   __NdisMapFile,
   __NdisUnmapFile,
   __NdisCloseFile,

   __NdisAllocatePacketPool,
   __NdisFreePacketPool,
   __NdisAllocatePacket,
   __NdisReinitializePacket,
   __NdisFreePacket,
   __NdisQueryPacket,

   __NdisAllocateBufferPool,
   __NdisFreeBufferPool,
   __NdisAllocateBuffer,
   __NdisCopyBuffer,
   __NdisFreeBuffer,
   __NdisQueryBuffer,
   __NdisGetBufferPhysicalAddress,
   __NdisChainBufferAtFront,
   __NdisChainBufferAtBack,
   __NdisUnchainBufferAtFront,
   __NdisUnchainBufferAtBack,
   __NdisGetNextBuffer,
   __NdisCopyFromPacketToPacket,

   __NdisRegisterProtocol,
   __NdisDeregisterProtocol,
   __NdisOpenAdapter,
   __NdisCloseAdapter,
   __NdisSend,
   __NdisTransferData,
   __NdisReset,
   __NdisRequest,

   __NdisInitializeWrapper,
   __NdisTerminateWrapper,
   __NdisRegisterMac,
   __NdisDeregisterMac,
   __NdisRegisterAdapter,
   __NdisDeregisterAdapter,
   __NdisCompleteOpenAdapter,
   __NdisCompleteCloseAdapter,
   __NdisCompleteSend,
   __NdisCompleteTransferData,
   __NdisCompleteReset,
   __NdisCompleteRequest,
   __NdisIndicateReceive,
   __NdisIndicateReceiveComplete,
   __NdisIndicateStatus,
   __NdisIndicateStatusComplete,
   __NdisCompleteQueryStatistics,

   __NdisEqualString,
   __NdisRegAdaptShutdown,
   __NdisReadNetworkAddress,

   __NdisWriteErrorLogEntry,

   __NdisMapIoSpace,
   __NdisDeregAdaptShutdown,

   __NdisAllocateSharedMemory,
   __NdisFreeSharedMemory, 

   __NdisAllocateDmaChannel, 
   __NdisSetupDmaTransfer, 
   __NdisCompleteDmaTransfer, 
   __NdisReadDmaCounter, 
   __NdisFreeDmaChannel, 
   __NdisReleaseAdapterResources, 
   __NdisQueryGlobalStatistics, 

   __NdisOpenProtocolConfiguration, 
   __NdisCompleteBindAdapter, 
   __NdisCompleteUnbindAdapter, 
   __WrapperStartNet, 
   __WrapperGetComponentList, 
   __WrapperQueryAdapterResources,
   __WrapperDelayBinding,
   __WrapperResumeBinding,
   __WrapperRemoveChildren,
   __NdisImmediateReadPciSlotInformation,
   __NdisImmediateWritePciSlotInformation,
   __NdisReadPciSlotInformation,
   __NdisWritePciSlotInformation,
   __NdisPciAssignResources
};

#endif // __NdisGetVersion

//typedef LRESULT __cdecl ADD_EXPORT_TABLE(
typedef LRESULT CDECL ADD_EXPORT_TABLE(
	PHPEEXPORTTABLE     pht,
	PSTR                pszModuleName,
	ULONG               cExportedFunctions,
	ULONG               cExportedNames,
	ULONG               ulOrdinalBase,
	PVOID               *pExportNameList,
	PUSHORT             pExportOrdinals,
	PVOID               *pExportAddrs,
	PHLIST              phetl
);
typedef ADD_EXPORT_TABLE *PADD_EXPORT_TABLE;

#define UNICODE_STRING_CONST(x)	{sizeof(L##x)-2, sizeof(L##x), L##x}

#endif //VDFLTIP_H

⌨️ 快捷键说明

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