MarkingInterlockedQueuedIrpsルール (wdm)

MarkingInterlockedQueuedIrps ルールは、ドライバーがさらに処理するためにインターロック方式でキューに登録する前にIRP を保留中として正しくマークするよう指定します。

また、この規則では、ドライバーが IoMarkIrpPending を呼び出し、IRP を保留中として正しくマークしてから、次のいずれかの関数を呼び出して、IRP をインターロックされたキューに追加することも指定します。

ドライバーは、インターロックされたキューにより多くの処理を必要とする IRP を追加する前に IoMarkIrpPending を呼び出す必要があります。 そうしないと、IRP がデキューされ、別のドライバー ルーチンによって完了され、 IoMarkIrpPending の呼び出しが発生する前にシステムによって解放され、クラッシュが発生する可能性があります。

詳細については、 「IRP キャンセルの同期」を参照してください。

ドライバーモデル: WDM

テスト方法

コンパイル時

静的ドライバー検証ツール を実行し、 MarkingInterlockedQueuedIrps 規則を指定します。

コードの分析を実行するには、次の手順に従います。
  1. コードを準備します (ロール型宣言を使用します)。
  2. 静的ドライバー検証ツールを実行します。
  3. 結果を表示および分析します。

詳細については、 「静的ドライバー検証ツールを使用してドライバー の欠陥を見つける」を参照してください。

適用対象

ExInterlockedInsertHeadListExInterlockedInsertTailListExInterlockedPushEntryListIoMarkIrpPendingRemoveHeadList

関連項目

MarkIrpPendingSynchronizing IRP Cancellation