Condividi tramite


Funzione RemoveHeadList (wdm.h)

La routine RemoveHeadList rimuove una voce dall'inizio di un elenco collegato doubly di strutture LIST_ENTRY .

Sintassi

PLIST_ENTRY RemoveHeadList(
  [in, out] PLIST_ENTRY ListHead
);

Parametri

[in, out] ListHead

Puntatore alla struttura LIST_ENTRY che funge da intestazione dell'elenco.

Valore restituito

RemoveHeadList restituisce un puntatore alla voce rimossa dall'elenco. Se l'elenco è vuoto, RemoveHeadList restituisce ListHead.

Commenti

RemoveHeadList rimuove la prima voce dall'elenco impostando ListHead-Flink> in modo che punti alla seconda voce nell'elenco. La routine imposta il membro Blink della seconda voce su ListHead. Nel caso in cui l'elenco sia vuoto, si tratta in effetti di un no-op.

Per informazioni sull'uso di questa routine durante l'implementazione di un elenco collegato doubly, vedere Singly e Doubly Linked Elenchi.

I chiamanti di RemoveHeadList possono essere in esecuzione in qualsiasi IRQL. Se RemoveHeadList viene chiamato in IRQL >= DISPATCH_LEVEL, lo spazio di archiviazione per ListHead e le voci di elenco devono essere residenti.

Requisiti

Requisito Valore
Client minimo supportato Disponibile a partire da Windows 2000.
Piattaforma di destinazione Desktop
Intestazione wdm.h (include Wdm.h, Ntddk.h, Ntifs.h, Wudfwdm.h)
IRQL Qualsiasi livello (vedere la sezione Osservazioni)
Regole di conformità DDI CancelSpinLock(wdm), CompleteRequest(wdm), DoubleCompletion(wdm), DoubleExFreePool(storport), Init_NdisAllocateIoWorkItem(ndis), InvalidReqAccessLocal(kmdf), IoAllocateFree(wdm), IoReuseIrp(wdm), IrpProcessingComplete(wdm), MarkingInterlockedQueuedIrps(wdm), MarkingQueuedIrps(wdm), MarkIrpPending(wdm), MarkIrpPending2(wdm), PendedCompletedRequest(wdm), PendedCompletedRequest2(wdm), PendedCompletedRequest3(wdm), PendedCompletedRequestEx(wdm), RemoveLock(wdm), RemoveLockCheck(wdm), RemoveLockForward(wdm), RemoveLockForward2(wdm), RemoveLockForwardDeviceControl(wdm), RemoveLockForwardDeviceControl2(wdm), RemoveLockForwardDeviceControlInternal(wdm), RemoveLockForwardDeviceControlInternal2(wdm), RemoveLockForwardRead(wdm), RemoveLockForwardRead2(wdm), RemoveLockForwardWrite(wdm), RemoveLockForwardWrite2(wdm), RemoveLockMnRemove(wdm), RemoveLockMnSurpriseRemove(wdm), RemoveLockRelease2(wdm), RemoveLockReleaseCleanup(wdm), RemoveLockReleaseClose(wdm), RemoveLockReleaseCreate(wdm), RemoveLockReleaseDeviceControl(wdm), RemoveLockReleaseInternalDeviceControl(wdm), RemoveLockReleasePnp(wdm), RemoveLockReleasePower(wdm), RemoveLockReleaseRead(wdm), RemoveLockReleaseShutdown(wdm), RemoveLockReleaseSystemControl(wdm), RemoveLockReleaseWrite(wdm)

Vedi anche

ExInterlockedRemoveHeadList

InitializeListHead

IsListEmpty

RemoveEntryList

RemoveTailList