一些NDIS函数

最近在做虚拟网卡驱动, 整理了一些函数

NPAGED_LOOKASIDE_LIST: 是一个不透明的链表, 可以从分配确定长度的非分页内存,系统会创建或销毁链表中的内存. 对于确定长度的内存比直接分配内存快。

必须调用 NdisInitializeNPagedLookasideList()初始化一个链表,

NdisAllocateFromNPagedLookasideList(): 从链表里分配一块缓冲

NdisFreeToNPagedLookasideList(): 把一块缓冲返回给链表

NdisDeleteNPagedLookasideList(): 释放链表

 

VOID
  NdisQueryPacket();

得到一个给定包的信息, 比如packet的总长度, buff的长度,起始地址

NdisQueryBufferSafe(), 得到一个指定buffer的长度,和virtual address

 

NdisGetNextBuffer(), 得到链表中一个指定buffer下一个buffer

 

NdisMSendComplete(), 通知上层驱动该packet已经处理完毕, 以便上层驱动释放资源

 

IoCallDriver(), 调用下层驱动执行irp

你可能感兴趣的:(一些NDIS函数)