次の方法で共有


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)

こちらもご覧ください

IO_RESOURCE_DESCRIPTOR

WdfIoResourceListRemove