Funzione ExInterlockedPushEntryList (wdm.h)
La routine ExInterlockedPushEntryList inserisce una voce all'inizio di un elenco collegato singly di strutture SINGLE_LIST_ENTRY .
Sintassi
PSINGLE_LIST_ENTRY ExInterlockedPushEntryList(
[in, out] PSINGLE_LIST_ENTRY ListHead,
[in, out] __drv_aliasesMem PSINGLE_LIST_ENTRY ListEntry,
[in, out] PKSPIN_LOCK Lock
);
Parametri
[in, out] ListHead
Puntatore alla struttura SINGLE_LIST_ENTRY che funge da intestazione elenco. L'archiviazione per ListHead deve essere residente in tutti i file IRQLs.
[in, out] ListEntry
Puntatore alla struttura SINGLE_LIST_ENTRY che rappresenta la voce da inserire nell'elenco. L'archiviazione per ListEntry deve essere residente in tutti i file IRQLs.
[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
ExInterlockedPushEntryList restituisce un puntatore alla prima voce dell'elenco prima dell'inserimento della nuova voce. Se l'elenco è vuoto, la routine restituisce NULL.
Commenti
ExInterlockedPushEntryList esegue la stessa operazione di PushEntryList, ma atomicamente. 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 ExInterlockedPushEntryList 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) |
Regole di conformità DDI | IoAllocateFree(wdm), IoReuseIrp(wdm), MarkingInterlockedQueuedIrps(wdm), RemoveLockCheck(wdm), RemoveLockForward(wdm), RemoveLockForward2(wdm), RemoveLockForwardDeviceControl(wdm), RemoveLockForwardDeviceControl2(wdm), RemoveLockForwardDeviceControlInternal(wdm), RemoveLockForwardDeviceControlInternal2(wdm), RemoveLockForwardRead(wdm),RemoveLockForwardRead2(wdm), RemoveLockForwardWrite(wdm), RemoveLockForwardWrite2(wdm), RemoveLockRelease2(wdm), RemoveLockReleaseCleanup(wdm), RemoveLockReleaseClose(wdm), RemoveLockReleaseCreate(wdm), RemoveLockReleaseDeviceControl(wdm), RemoveLockReleaseInternalDeviceControl(wdm), RemoveLockReleasePower(wdm), RemoveLockReleaseRead(wdm), RemoveLockReleaseShutdown(wdm), RemoveLockReleaseSystemControl(wdm), RemoveLockReleaseWrite(wdm) |