Compartir a través de


Macro ExInterlockedPushEntrySList (wdm.h)

El ExInterlockedPushEntrySList rutina inserta de forma atómica una entrada al principio de una lista vinculada secuenciadamente.

Sintaxis

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
    );

Parámetros

ListHead

Puntero a la estructura SLIST_HEADER que actúa como encabezado de la lista vinculada secuenciada. ListHead debe haberse inicializado llamando a ExInitializeSListHead.

ListEntry

Puntero a la entrada asignada por el autor de la llamada que se va a insertar.

[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 estar residente y debe haberse inicializado llamando a KeInitializeSpinLock. Debe usar este bloqueo de giro solo con las rutinas deXxxList ExInterlocked.

Valor devuelto

Si había entradas en la lista especificada, ExInterlockedPushEntrySList devuelve un puntero a la primera estructura de SLIST_ENTRY que era una entrada de la lista; de lo contrario, devuelve NULL.

Observaciones

Para obtener más información sobre el uso de esta rutina para implementar una lista vinculada secuenciadamente, vea Listas vinculadas duplicadas y.

En Windows 2000, los controladores deben usar el modificador -D_WIN2K_COMPAT_SLIST_USAGE para vincular correctamente el código que usa ExInterlockedPushEntrySList.

Se puede llamar a la rutina ExInterlockedPushEntrySList en cualquier IRQL. El almacenamiento del parámetro ListHead de y las entradas de lista deben estar residentes en todos los IRQL.

Requisitos

Requisito Valor
cliente mínimo admitido Disponible a partir de Windows 2000.
de la plataforma de destino de Universal
encabezado de wdm.h (include Wdm.h, Ntddk.h, Ntifs.h)
biblioteca de NtosKrnl.lib
DLL de NtosKrnl.exe
irQL Cualquier nivel (consulte la sección Comentarios)

Consulte también

ExInitializeSListHead

ExInterlockedInsertTailList

ExInterlockedPopEntrySList

ExQueryDepthSList

keInitializeSpinLock