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