NdisInitializeListHead 宏 (ndis.h)

NdisInitializeListHead 函数初始化由驱动程序维护的双重链接队列。

语法

void NdisInitializeListHead(
  [in]  _ListHead
);

参数

[in] _ListHead

指向互锁队列或列表头的驱动程序分配的非分页存储的指针。

返回值

备注

如果驱动程序在内部排队请求,则可以从 MiniportInitializeEx 函数或协议驱动程序的 DriverEntry 例程调用 NdisInitializeListHead。 但是,微型端口驱动程序很少设置内部队列,因为 NDIS 库序列化发送到微型端口驱动程序的请求和数据包。

维护内部队列的任何 NDIS 驱动程序都负责同步驱动程序函数对排队条目的访问。 NdisInterlockedXxxList 函数可确保在任何给定时刻,即使驱动程序在多处理器计算机上运行,也只有一个驱动程序函数可以访问排队的条目,因为队列受调用方提供的旋转锁的保护。

对于互锁队列,驱动程序还必须为旋转锁提供非分页存储。 它必须使用 NdisAllocateSpinLock 函数初始化旋转锁,然后才能将指向该旋转锁的指针传递给任何 NdisInterlockedXxxList 函数。

NdisInitializeListHead 的调用方可以在任何 IRQL 上运行。 如果在 IRQL >= DISPATCH_LEVEL调用 NdisInitializeListHead,则 ListHead 的存储必须是驻留的。

要求

要求
最低受支持的客户端 支持 NDIS 6.0 和 NDIS 5.1 驱动程序 (请参阅 Windows Vista 中的 NdisInitializeListHead (NDIS 5.1) ) 。 NDIS 5.1 驱动程序支持 (请参阅 Windows XP 中的 NdisInitializeListHead (NDIS 5.1) ) 。
目标平台 桌面
标头 ndis.h (包括 Ndis.h)
IRQL 任何级别 (请参阅“备注”部分)

另请参阅

NDIS 协议驱动程序的 DriverEntry

MiniportInitializeEx

NdisAllocateSpinLock

NdisInterlockedInsertHeadList NdisInterlockedInsertTailList NdisInterlockedRemoveHeadList