RemoveHeadList 関数 (wdm.h)

RemoveHeadList ルーチンは、LIST_ENTRY構造体の二重にリンクされたリストの先頭からエントリ削除します。

構文

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

パラメーター

[in, out] ListHead

リスト ヘッダーとして機能する LIST_ENTRY 構造体へのポインター。

戻り値

RemoveHeadList は、 リストから削除されたエントリへのポインターを返します。 リストが空の場合、 RemoveHeadList は ListHead を返 します

注釈

RemoveHeadList は、リスト内の 2 番目のエントリを指すように ListHead-Flink> を設定して、リストから最初のエントリを削除します。 ルーチンは、2 番目のエントリの Blink メンバーを ListHead に設定します。 リストが空の場合、これは実質的に no-op です。

二重リンク リストを実装するときにこのルーチンを使用する方法の詳細については、「Singly および Doubly Linked Lists」を参照してください。

RemoveHeadList の呼び出し元は、任意の IRQL で実行できます。 IRQL >= DISPATCH_LEVELで RemoveHeadList が呼び出された場合、ListHead のストレージとリスト エントリは常駐である必要があります。

要件

要件
サポートされている最小のクライアント Windows 2000 以降で使用できます。
対象プラットフォーム デスクトップ
Header wdm.h (Wdm.h、Ntddk.h、Ntifs.h、Wudfwdm.h を含む)
IRQL 任意のレベル (「解説」セクションを参照)
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)

こちらもご覧ください

ExInterlockedRemoveHeadList

InitializeListHead

IsListEmpty

RemoveEntryList

RemoveTailList