Compartir a través de


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)

Consulte también

ExInitializeSListHead

ExInterlockedPopEntrySList

ExInterlockedPushEntryList

KeInitializeSpinLock

PopEntryList