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 | 任何级别 (请参阅“备注”部分) |