NdisInitializeListHead 宏 (ndis.h)

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

语法

void NdisInitializeListHead(
  [in]  _ListHead
);

参数

[in] _ListHead

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

返回值

没有

言论

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

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

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

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

要求

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

另请参阅

NDIS 协议驱动程序的 DriverEntry

MiniportInitializeEx

NdisAllocateSpinLock

NdisInterlockedInsertHeadList NdisInterlockedInsertTailList NdisInterlockedRemoveHeadList