NdisInitializeSListHead 宏 (ndis.h)

NdisInitializeSListHead 函数初始化已排序、互锁、单声链接列表的头。

语法

void NdisInitializeSListHead(
  [in]  SListHead
);

参数

[in] SListHead

指向要初始化的调用方提供的列表头的指针,该标头必须位于驻留内存中。 结构必须在 64 位平台上对齐 16 字节。

返回值

备注

NdisInitializeSListHead 零初始化 SListHead 上的不透明列表头,并将第一个条目指针设置为 NULL

每次将条目插入列表或从列表中移除条目时,S-List 中的序列号都会递增。

S-List 中的所有条目都必须是非分页的。

任何使用 S-List 的驱动程序都必须为 S-List 提供旋转锁 NdisInterlockedPushEntrySList NdisInterlockedPopEntrySList 函数。 在对其中任一函数进行初始调用之前,驱动程序必须使用 NdisAllocateSpinLock 函数初始化旋转锁。 为了防止死锁,驱动程序在对 NdisInterlockedPushEntrySListNdisInterlockedPopEntrySList 进行后续调用时,不得持有此旋转锁

若要管理非分页内存中固定大小的条目池,请考虑使用外观列表而不是 S-List。

重试 I/O 操作的驱动程序应使用双重链接的互锁队列和 NdisInterlockedInsertHeadListNdisInterlockedInsertTailListNdisInterlockedRemoveHeadList 函数,而不是 S-List。

如果在 IRQL >= DISPATCH_LEVEL调用 NdisInitializeSListHead则 SListHead 参数的存储必须驻留。

要求

   
最低受支持的客户端 (支持 NDIS 6.0 和 NDIS 5.1 驱动程序,请参阅 Windows Vista 中的 NdisInitializeSListHead (NDIS 5.1) ) 。 支持 NDIS 5.1 驱动程序 (请参阅 Windows XP 中的 NdisInitializeSListHead (NDIS 5.1) ) 。
目标平台 桌面
Header ndis.h (包括 Ndis.h)
IRQL 任何级别

另请参阅

NdisInitializeNPagedLookasideList

NdisInterlockedPopEntrySList

NdisInterlockedPushEntrySList

NdisQueryDepthSList

NdisQueueIoWorkItem