ExInterlockedPopEntryList 函数 (wdm.h)
ExInterlockedPopEntryList 例程从 SINGLE_LIST_ENTRY 结构单向链接列表的开头删除条目。
PSINGLE_LIST_ENTRY ExInterlockedPopEntryList(
[in, out] PSINGLE_LIST_ENTRY ListHead,
[in, out] PKSPIN_LOCK Lock
);
[in, out] ListHead
指向用作列表标头的 SINGLE_LIST_ENTRY 结构的指针。 ListHead 的存储必须驻留在所有 IRCL 中。
[in, out] Lock
指向 KSPIN_LOCK 结构的指针,该结构充当用于同步列表访问权限的旋转锁。 旋转锁的存储必须是驻留的,并且必须通过调用 KeInitializeSpinLock进行初始化。 必须仅将此旋转锁与 ExInterlockedXxxList 例程一起使用。
ExInterlockedPopEntryList 返回指向从列表中删除的 SINGLE_LIST_ENTRY 结构的指针。 如果列表为空,则例程返回 NULL。
ExInterlockedPopEntryList 执行与 PopEntryList相同的作,但以原子方式执行。 不要在同一列表中混合原子和非原子调用。
有关使用此例程实现单向链接列表的详细信息,请参阅 Singly 和 Doubly 链接列表。
可以在任何 IRQL 中调用 ExInterlockedPopEntryList 例程。 ListHead 参数的存储必须驻留在所有 IRCL 中。
要求 | 价值 |
---|---|
最低支持的客户端 | 从 Windows 2000 开始可用。 |
目标平台 | 普遍 |
标头 | wdm.h (包括 Wdm.h、Ntddk.h、Ntifs.h) |
库 | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | 任何级别 (请参阅“备注”部分) |