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