次の方法で共有


InsertHeadList 関数 (wdm.h)

InsertHeadList ルーチンは、LIST_ENTRY構造体の二重にリンクされたリストの先頭にエントリ挿入します。

構文

void InsertHeadList(
  [in, out] PLIST_ENTRY                  ListHead,
  [in, out] __drv_aliasesMem PLIST_ENTRY Entry
);

パラメーター

[in, out] ListHead

リストの先頭を表す LIST_ENTRY 構造体へのポインター。

[in, out] Entry

リストに挿入するエントリを表す LIST_ENTRY 構造体へのポインター。

戻り値

なし

解説

InsertHeadList は、ListHead-Flink> を更新して Entry をポイントします Entry-Flink> を更新して、リスト内の古い最初のエントリをポイントし、Entry-Blink> を ListHead に設定します。 元の最初のエントリの Blink フィールドも、Entry をポイントするように更新 されます

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

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

要件

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

こちらもご覧ください

ExInterlockedInsertHeadList

InitializeListHead

InsertTailList

IsListEmpty

RemoveHeadList

RemoveTailList