リソース要件リストの変更

PnP マネージャーは、新しく接続されたすべてのデバイスのドライバーがロードされたことを確認した後、デバイスのハードウェアリクエストのリストをデバイスのドライバー スタックに送信します。

リストがスタックの下に移動すると、フレームワークは各関数およびフィルター ドライバーのEvtDeviceFilterRemoveResourceRequirements コールバック関数を呼び出し、ハードウェアリクエストリストを入力引数として渡します。 このコールバック関数はハードウェアリクエストのリストから、バス ドライバーが指定したが、デバイスの動作に必要ではないと関数ドライバーが判断したハードウェアリソースを取り外すことができます。

たとえば、PCI バス ドライバーは、PCI 仕様に従って、 I/O 領域リソースをメモリ領域に複製する場合があります。 デバイスが I/O 領域リソースを使用せずに動作できる場合、デバイスのファンクション ドライバーは、ハードウェアリクエストのリストから I/O 領域リソースを取り外すことができます。

リクエストリストから項目を取り外すには、ドライバーは次の操作を行います:

リストがドライバースタックに戻ると、フレームワークは各関数およびフィルター ドライバーの EvtDeviceFilterAddResourceRequirements コールバック関数を呼び出し、ハードウェアリクエストリストを入力引数として渡します。 このコールバック関数は、デバイスを動作させるために関数ドライバーが必要とするハードウェア リソースを追加できます。

ハードウェアリクエストのリストに項目を追加するには、ドライバーは次の操作を行います: