Funzione ExInterlockedRemoveHeadList (wdm.h)
La routine ExInterlockedRemoveHeadList rimuove una voce dall'inizio di un elenco doubly collegato di strutture LIST_ENTRY .
Sintassi
PLIST_ENTRY ExInterlockedRemoveHeadList(
[in, out] PLIST_ENTRY ListHead,
[in, out] PKSPIN_LOCK Lock
);
Parametri
[in, out] ListHead
Puntatore alla struttura LIST_ENTRY che funge da intestazione dell'elenco.
[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
ExInterlockedRemoveHeadList restituisce un puntatore alla struttura LIST_ENTRY rimossa dall'elenco. Se l'elenco è vuoto, la routine restituisce NULL.
Commenti
ExInterlockedRemoveHeadList esegue un'operazione simile a RemoveHeadList, 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 doubly, vedere Singly e Doubly Linked Elenchi.
La routine ExInterlockedRemoveHeadList 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) |