Condividi tramite


Macro exInterlockedPushEntrySList (wdm.h)

La routine ExInterlockedPushEntrySList inserisce una voce all'inizio di un elenco collegato sequenziato.

Sintassi

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

Parametri

ListHead

Puntatore alla struttura SLIST_HEADER che funge da intestazione per l'elenco collegato sequenziato. ListHead deve essere stato inizializzato chiamando ExInitializeSListHead.

ListEntry

Puntatore alla voce allocata del chiamante da inserire.

[in, out] Lock

Puntatore a una struttura KSPIN_LOCK che funge da blocco di rotazione usato per sincronizzare l'accesso all'elenco. L'archiviazione per il blocco spin deve essere residente e deve essere stata inizializzata chiamando KeInitializeSpinLock. È necessario usare questo blocco di spin solo con le routine Di elencoXxxexInterlocked .

Valore restituito

Se nell'elenco specificato sono presenti voci, ExInterlockedPushEntrySList restituisce un puntatore alla prima struttura SLIST_ENTRY che era una voce nell'elenco; in caso contrario, restituisce NULL.

Commenti

Per altre informazioni sull'uso di questa routine per implementare un elenco collegato sequenziato, vedere Singly e Doubly Linked Elenchi.

In Windows 2000 i driver devono usare il passaggio -D_WIN2K_COMPAT_SLIST_USAGE al codice di collegamento che usa ExInterlockedPushEntrySList.

La routine ExInterlockedPushEntrySList può essere chiamata in qualsiasi IRQL. L'archiviazione per il parametro ListHead e le voci dell'elenco devono essere residenti in tutti gli ELENCHI di integrazione.

Requisiti

Requisito Valore
Client minimo supportato Disponibile a partire da Windows 2000.
Piattaforma di destinazione Universale
Intestazione wdm.h (include Wdm.h, Ntddk.h, Ntifs.h)
Libreria NtosKrnl.lib
DLL NtosKrnl.exe
IRQL Qualsiasi livello (vedere la sezione Osservazioni)

Vedi anche

ExInitializeSListHead

ExInterlockedInsertTailList

ExInterlockedPopEntrySList

ExQueryDepthSList

KeInitializeSpinLock