WdfIoResourceListRemoveByDescriptor 関数 (wdfresource.h)
[KMDF にのみ適用]
WdfIoResourceListRemoveByDescriptor メソッドは、リソース要件リストの論理構成からリソース記述子を削除します。
構文
void WdfIoResourceListRemoveByDescriptor(
[in] WDFIORESLIST ResourceList,
[in] PIO_RESOURCE_DESCRIPTOR Descriptor
);
パラメーター
[in] ResourceList
デバイスのハードウェア リソースの論理構成を表すフレームワーク リソース範囲リスト オブジェクトへのハンドル。
[in] Descriptor
ハードウェア リソースを記述する IO_RESOURCE_DESCRIPTOR 構造体へのポインター。
戻り値
なし
解説
ドライバーが無効なオブジェクト ハンドルを提供すると、バグ チェックが発生します。
WdfIoResourceListRemoveByDescriptor メソッドは、Descriptor パラメーターに一致するリソース記述子を削除します。 一致するものを見つけるために、 メソッドは、指定されたリソース記述子と論理構成のリソース記述子 (バイトのバイト) を比較します。
WdfIoResourceListRemoveByDescriptor がインデックス値 n を持つリソース記述子を削除すると、次のリソース記述子のインデックス値が n+1 から n に変わります。
リソース要件リストと論理構成の詳細については、「 Framework-Based ドライバーのハードウェア リソース」を参照してください。
例
次のコード例では、指定したポート アドレスを含むリソース記述子の論理構成を検索し、そのリソース記述子を削除します。
IO_RESOURCE_DESCRIPTOR descriptor;
ULONG resCount, j;
//
// Get the number of resource descriptors that
// are in this logical configuration.
//
resCount = WdfIoResourceListGetCount(reslist);
for (j = 0; j < resCount; j++) {
PIO_RESOURCE_DESCRIPTOR descriptor;
//
// Get the next resource descriptor.
//
descriptor = WdfIoResourceListGetDescriptor(
reslist,
j
);
//
// Stop if this descriptor is the port descriptor that
// we're looking for, and remove the descriptor.
//
if (descriptor->Type == CmResourceTypePort) {
if ((descriptor->u.port.MinimumAddress) == PORT_RANGE_A) {
WdfIoResourceListRemoveByDescriptor(
Reslist,
descriptor
);
break;
}
}
}
要件
要件 | 値 |
---|---|
対象プラットフォーム | ユニバーサル |
最小 KMDF バージョン | 1.0 |
Header | wdfresource.h (Wdf.h を含む) |
Library | Wdf01000.sys (「Framework ライブラリのバージョン管理」を参照)。 |
IRQL | <=DISPATCH_LEVEL |
DDI コンプライアンス規則 | DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf) |