Condividi tramite


Funzione ExInterlockedPopEntrySList (wdm.h)

La routine ExInterlockedPopEntrySList rimuove la prima voce da un elenco collegato sequenziato.

Sintassi

NTKERNELAPI
PSLIST_ENTRY
FASTCALL
ExInterlockedPopEntrySList (
    _Inout_ PSLIST_HEADER ListHead,
    _Inout_opt_ _Requires_lock_not_held_(*_Curr_) PKSPIN_LOCK Lock
    );

Parametri

[in, out] ListHead

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

[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

ExInterlockedPopEntrySList restituisce un puntatore alla prima struttura SLIST_ENTRY nell'elenco. Se l'elenco è vuoto, la routine 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 l'opzione -D_WIN2K_COMPAT_SLIST_USAGE per collegare correttamente il codice che usa ExInterlockedPopEntrySList.

ExInterlockedPopEntrySList può essere chiamato in qualsiasi IRQL. L'archiviazione per il parametro ListHead deve essere residente 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

ExInterlockedPushEntrySList

ExInterlockedRemoveHeadList

ExQueryDepthSList

KeInitializeSpinLock