2.3 常见内核数据结构 : 网络数据结构

来源:互联网 发布:科荣erp进销存软件 编辑:程序博客网 时间:2024/05/16 00:26

NDIS - Network Driver Interface Specification

网络数据结构:

1. NDIS 缓冲区

typedef MDL NDIS_BUFFER, *PNDIS_BUFFER;

kd> dt nt!_mdl

Next Ptr32 _MDL

Size

MdlFlags

Process Ptr32 _EPROCESS

MappedSystemVa

StartVa

ByteCount

ByteOffset


2. NDIS 数据包

typedef struct _NDIS_PACKET {

NDIS_PACKET_PRIVATE Private;

union {

struct {

UCHAR MiniportReserved[2*sizeof(PVOID)];

UCHAR WrapperReserved[2*sizeof(PVOID)];

};

struct {

UCHAR MiniprotReservedEx[3*sizeof(PVOID)];

UCHAR WrapperReservedEx[sizeof(PVOID)];

};

struct {

UCHAR MacReserved[4*sizeof(PVOID)];

}

};

ULONG_PTR Reserved[2];

UCHAR  ProtocolReserved[1];

} NDIS_PACKET, *PNDIS_PACKET, **PPNDIS_PACKET;


kd> dt ndis!_NDIS_PACKET_PRIVATE

PhysicalCount

TotalLength

Head Ptr32 _MDL

Tail Ptr32 _MDL

Pool

Count

Flags

ValidCounts

NdisPacketFlags

NdisPacketOobOffset


3. NDIS 驱动绑定工作相关数据结构

ndis!_NDIS_M_DRIVER_BLOCK

ndis!_NDIS_MINIPORT_BLOCK

ndis!_NDIS_OPEN_BLOCK

ndis!_NDIS_PROTOCOL_BLOCK

原创粉丝点击