ExInterlockedPushEntrySList 宏 (wdm.h)
ExInterlockedPushEntrySList 例程在序列单选链接列表的开头插入条目。
语法
NTKERNELAPI
PSLIST_ENTRY
FASTCALL
ExInterlockedPushEntrySList (
_Inout_ PSLIST_HEADER ListHead,
_Inout_ __drv_aliasesMem PSLIST_ENTRY ListEntry,
_Inout_opt_ _Requires_lock_not_held_(*_Curr_) PKSPIN_LOCK Lock
);
参数
ListHead
指向 SLIST_HEADER 结构的指针,该结构用作排序单向链接列表的标头。 ListHead 必须通过调用 ExInitializeSListHead进行初始化。
ListEntry
指向要插入的调用方分配的条目的指针。
[in, out] Lock
指向 KSPIN_LOCK 结构的指针,该结构充当用于同步列表访问权限的旋转锁。 旋转锁的存储必须是驻留的,并且必须通过调用 KeInitializeSpinLock进行初始化。 必须仅将此旋转锁与 ExInterlockedXxxList 例程一起使用。
返回值
如果指定列表中存在条目,ExInterlockedPushEntrySList 返回指向列表上条目的第一个 SLIST_ENTRY 结构的指针;否则,它将返回 NULL。
言论
有关使用此例程实现有序单向链接列表的详细信息,请参阅 Singly 和 Doubly Linked Lists。
在 Windows 2000 上,驱动程序必须使用 -D_WIN2K_COMPAT_SLIST_USAGE 开关成功链接使用 ExInterlockedPushEntrySList的代码。
可以在任何 IRQL 中调用 ExInterlockedPushEntrySList 例程。 ListHead 参数的存储,列表条目必须驻留在所有 IRCL 中。
要求
要求 | 价值 |
---|---|
最低支持的客户端 | 从 Windows 2000 开始可用。 |
目标平台 | 普遍 |
标头 | wdm.h (包括 Wdm.h、Ntddk.h、Ntifs.h) |
库 | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | 任何级别 (请参阅“备注”部分) |