ChangeQueueState ルール (kmdf)

ChangeQueueState ルールは、WDF ドライバーが同時実行スレッドからキューの状態を変更しようとしたり、同じスレッド内から状態変更 DDI を次々に呼び出さないことを指定します。 キュー状態変更コールバック関数は、WdfIoQueueStopWdfIoQueueStopSynchronouslyWdfIoQueuePurgeWdfIoQueuePurgeSynchronouslyWdfIoQueueDrainWdfIoQueueDrainSynchronouslyWdfIoQueueStopAndPurgeWdfIoQueueStopAndPurgeAndPurgeSynchronously です。 キューの状態の変更が既に進行中のときにこれらの DDI が呼び出されると、コンピューターがクラッシュしたり、応答しなくなります。

ドライバーモデル: KMDF

テスト方法

コンパイル時

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

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

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

適用対象

WdfDeviceCreateWdfDriverCreateWdfIoQueueCreateWdfIoQueueDrainWdfIoQueueDrainSynchronouslyWdfIoQueuePurgWdfIoQueuePurgeSynchronouslWdfIoQueueStopAndPurgeWdfIoQueueStopAndPurgeSynchronouslyWdfIoQueueStopSynchronousl