Función ExInterlockedPopEntryList (wdm.h)
La rutina ExInterlockedPopEntryList quita de forma atómica una entrada desde el principio de una lista vinculada singly de estructuras SINGLE_LIST_ENTRY .
Sintaxis
PSINGLE_LIST_ENTRY ExInterlockedPopEntryList(
[in, out] PSINGLE_LIST_ENTRY ListHead,
[in, out] PKSPIN_LOCK Lock
);
Parámetros
[in, out] ListHead
Puntero a la estructura SINGLE_LIST_ENTRY que actúa como encabezado de lista. El almacenamiento de ListHead debe estar residente en todos los IRQL.
[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
ExInterlockedPopEntryList devuelve un puntero a la estructura SINGLE_LIST_ENTRY quitada de la lista. Si la lista estaba vacía, la rutina devuelve NULL.
Comentarios
ExInterlockedPopEntryList realiza la misma operación que PopEntryList, pero atómicamente. No mezcle llamadas atómicas y no atómicas en la misma lista.
Para obtener más información sobre cómo usar esta rutina para implementar una lista vinculada singly, consulte Singly and Duplicay Linked Listas.
Se puede llamar a la rutina ExInterlockedPopEntryList 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) |