Condividi tramite


Funzione ExInterlockedPopEntryList (wdm.h)

La routine ExInterlockedPopEntryList rimuove atomicamente una voce dall'inizio di un elenco collegato di SINGLE_LIST_ENTRY .

Sintassi

PSINGLE_LIST_ENTRY ExInterlockedPopEntryList(
  [in, out] PSINGLE_LIST_ENTRY ListHead,
  [in, out] PKSPIN_LOCK        Lock
);

Parametri

[in, out] ListHead

Puntatore alla struttura SINGLE_LIST_ENTRY che funge da intestazione dell'elenco. L'archiviazione per ListHead deve risiedere in tutti i valori IRQLs.

[in, out] Lock

Puntatore a una struttura KSPIN_LOCK che funge da blocco di selezione utilizzato per sincronizzare l'accesso all'elenco. Lo spazio di archiviazione per il blocco di rotazione deve essere residente e deve essere stato inizializzato chiamando KeInitializeSpinLock. È necessario utilizzare questo blocco spin solo con le routine ElencoXxxExInterlocked .

Valore restituito

ExInterlockedPopEntryList restituisce un puntatore alla struttura SINGLE_LIST_ENTRY rimossa dall'elenco. Se l'elenco è vuoto, la routine restituisce NULL.

Commenti

ExInterlockedPopEntryList esegue la stessa operazione di PopEntryList, ma in modo atomico. Non combinare chiamate atomiche e non atomiche nello stesso elenco.

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

La routine ExInterlockedPopEntryList può essere chiamata in qualsiasi IRQL. Lo spazio di archiviazione per il parametro ListHead deve risiedere in tutti i valori IRQLs.

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

ExInterlockedPopEntrySList

ExInterlockedPushEntryList

KeInitializeSpinLock

PopEntryList