Función ExInterlockedPopEntrySList (wdm.h)
La rutina ExInterlockedPopEntrySList quita de forma atómica la primera entrada de una lista vinculada secuenciadamente.
Sintaxis
NTKERNELAPI
PSLIST_ENTRY
FASTCALL
ExInterlockedPopEntrySList (
_Inout_ PSLIST_HEADER ListHead,
_Inout_opt_ _Requires_lock_not_held_(*_Curr_) PKSPIN_LOCK Lock
);
Parámetros
[in, out] ListHead
Puntero a la estructura SLIST_HEADER que actúa como encabezado de la lista vinculada secuenciada. ListHead debe haberse inicializado llamando a ExInitializeSListHead.
[in, out] Lock
Puntero a una estructura de KSPIN_LOCK que actúa como bloqueo de número usado para sincronizar el acceso a la lista. El almacenamiento del bloqueo de número debe ser residente y debe haberse inicializado llamando a KeInitializeSpinLock. Debe usar este bloqueo de número solo con las rutinas ExInterlockedXxxList .
Valor devuelto
ExInterlockedPopEntrySList devuelve un puntero a la primera estructura SLIST_ENTRY de la lista. Si la lista estaba vacía, la rutina devuelve NULL.
Comentarios
Para obtener más información sobre el uso de esta rutina para implementar una lista vinculada secuenciadamente, vea Singly and Doblemente vinculado Listas.
En Windows 2000, los controladores deben usar el modificador -D_WIN2K_COMPAT_SLIST_USAGE para vincular correctamente el código que usa ExInterlockedPopEntrySList.
Se puede llamar a ExInterlockedPopEntrySList en cualquier IRQL. El almacenamiento del parámetro ListHead debe estar residente en todas las IRQL.
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Disponible a partir de Windows 2000. |
Plataforma de destino | Universal |
Encabezado | wdm.h (incluya Wdm.h, Ntddk.h, Ntifs.h) |
Library | NtosKrnl.lib |
Archivo DLL | NtosKrnl.exe |
IRQL | Cualquier nivel (consulte la sección Comentarios) |