📄 passthru.h
字号:
//*************************************************************************************************************************
//=================文件名: passthru.h
//=================作者: 谢明 xieming@centerm.com.cn
//*************************************************************************************************************************
#ifdef NDIS51_MINIPORT
#define PASSTHRU_MAJOR_NDIS_VERSION 5
#define PASSTHRU_MINOR_NDIS_VERSION 1
#else
#define PASSTHRU_MAJOR_NDIS_VERSION 4
#define PASSTHRU_MINOR_NDIS_VERSION 0
#endif
#ifdef NDIS51
#define PASSTHRU_PROT_MAJOR_NDIS_VERSION 5
#define PASSTHRU_PROT_MINOR_NDIS_VERSION 0
#else
#define PASSTHRU_PROT_MAJOR_NDIS_VERSION 4
#define PASSTHRU_PROT_MINOR_NDIS_VERSION 0
#endif
#define MAX_BUNDLEID_LENGTH 50
#define TAG 'ImPa'
#define WAIT_INFINITE 0
//advance declaration
typedef struct _ADAPT ADAPT, *PADAPT;
// BEGIN_PTUSERIO
typedef struct _OPEN_CONTEXT OPEN_CONTEXT, *POPEN_CONTEXT;
// END_PTUSERIO
extern
NTSTATUS
DriverEntry(
IN PDRIVER_OBJECT DriverObject,
IN PUNICODE_STRING RegistryPath
);
NTSTATUS
PtDispatch(
IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp
);
NDIS_STATUS
PtRegisterDevice(
VOID
);
NDIS_STATUS
PtDeregisterDevice(
VOID
);
VOID
PtUnloadProtocol(
VOID
);
//====================================================================================================================
// Protocol proto-types
//====================================================================================================================
extern
VOID
PtOpenAdapterComplete(
IN NDIS_HANDLE ProtocolBindingContext,
IN NDIS_STATUS Status,
IN NDIS_STATUS OpenErrorStatus
);
extern
VOID
PtCloseAdapterComplete(
IN NDIS_HANDLE ProtocolBindingContext,
IN NDIS_STATUS Status
);
extern
VOID
PtResetComplete(
IN NDIS_HANDLE ProtocolBindingContext,
IN NDIS_STATUS Status
);
extern
VOID
PtRequestComplete(
IN NDIS_HANDLE ProtocolBindingContext,
IN PNDIS_REQUEST NdisRequest,
IN NDIS_STATUS Status
);
extern
VOID
PtStatus(
IN NDIS_HANDLE ProtocolBindingContext,
IN NDIS_STATUS GeneralStatus,
IN PVOID StatusBuffer,
IN UINT StatusBufferSize
);
extern
VOID
PtStatusComplete(
IN NDIS_HANDLE ProtocolBindingContext
);
extern
VOID
PtSendComplete(
IN NDIS_HANDLE ProtocolBindingContext,
IN PNDIS_PACKET Packet,
IN NDIS_STATUS Status
);
extern
VOID
PtTransferDataComplete(
IN NDIS_HANDLE ProtocolBindingContext,
IN PNDIS_PACKET Packet,
IN NDIS_STATUS Status,
IN UINT BytesTransferred
);
extern
NDIS_STATUS
PtReceive(
IN NDIS_HANDLE ProtocolBindingContext,
IN NDIS_HANDLE MacReceiveContext,
IN PVOID HeaderBuffer,
IN UINT HeaderBufferSize,
IN PVOID LookAheadBuffer,
IN UINT LookaheadBufferSize,
IN UINT PacketSize
);
extern
VOID
PtReceiveComplete(
IN NDIS_HANDLE ProtocolBindingContext
);
extern
INT
PtReceivePacket(
IN NDIS_HANDLE ProtocolBindingContext,
IN PNDIS_PACKET Packet
);
extern
VOID
PtBindAdapter(
OUT PNDIS_STATUS Status,
IN NDIS_HANDLE BindContext,
IN PNDIS_STRING DeviceName,
IN PVOID SystemSpecific1,
IN PVOID SystemSpecific2
);
extern
VOID
PtUnbindAdapter(
OUT PNDIS_STATUS Status,
IN NDIS_HANDLE ProtocolBindingContext,
IN NDIS_HANDLE UnbindContext
);
VOID
PtUnload(
IN PDRIVER_OBJECT DriverObject
);
extern
NDIS_STATUS
PtPNPHandler(
IN NDIS_HANDLE ProtocolBindingContext,
IN PNET_PNP_EVENT pNetPnPEvent
);
NDIS_STATUS
PtPnPNetEventReconfigure(
IN PADAPT pAdapt,
IN PNET_PNP_EVENT pNetPnPEvent
);
NDIS_STATUS
PtPnPNetEventSetPower (
IN PADAPT pAdapt,
IN PNET_PNP_EVENT pNetPnPEvent
);
//=====================================================================================================================
// Miniport proto-types
//=====================================================================================================================
NDIS_STATUS
MPInitialize( //微端口初始化
OUT PNDIS_STATUS OpenErrorStatus,
OUT PUINT SelectedMediumIndex,
IN PNDIS_MEDIUM MediumArray,
IN UINT MediumArraySize,
IN NDIS_HANDLE MiniportAdapterHandle,
IN NDIS_HANDLE WrapperConfigurationContext
);
VOID
MPSendPackets( //发送数据包组
IN NDIS_HANDLE MiniportAdapterContext,
IN PPNDIS_PACKET PacketArray,
IN UINT NumberOfPackets
);
NDIS_STATUS
MPSend( //发送数据包
IN NDIS_HANDLE MiniportAdapterContext,
IN PNDIS_PACKET Packet,
IN UINT Flags
);
NDIS_STATUS
MPQueryInformation( //查询信息
IN NDIS_HANDLE MiniportAdapterContext,
IN NDIS_OID Oid,
IN PVOID InformationBuffer,
IN ULONG InformationBufferLength,
OUT PULONG BytesWritten,
OUT PULONG BytesNeeded
);
NDIS_STATUS
MPSetInformation( //设置信息
IN NDIS_HANDLE MiniportAdapterContext,
IN NDIS_OID Oid,
IN PVOID InformationBuffer,
IN ULONG InformationBufferLength,
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -