次の方法で共有


WdfIoResourceRequirementsListInsertIoResList 関数 (wdfresource.h)

[KMDF にのみ適用]

WdfIoResourceRequirementsListInsertIoResList メソッドは、リソース要件リストに 論理構成 を挿入します。

構文

NTSTATUS WdfIoResourceRequirementsListInsertIoResList(
  [in] WDFIORESREQLIST RequirementsList,
  [in] WDFIORESLIST    IoResList,
  [in] ULONG           Index
);

パラメーター

[in] RequirementsList

デバイスのリソース要件リストを表すフレームワーク リソース要件リスト オブジェクトへのハンドル。

[in] IoResList

デバイスのハードウェア リソースの論理構成を表すフレームワーク リソース範囲リスト オブジェクトへのハンドル。

[in] Index

RequirementsList が指定するリソース要件リストに既に含まれている一連の論理構成のインデックスとして使用 される、0 から始まる値。 リストの末尾に構成を追加するには、WDF_INSERT_AT_ENDまたは WdfIoResourceRequirementsListGetCount から戻り値指定します。

戻り値

WdfIoResourceRequirementsListInsertIoResList 、操作が成功した場合にSTATUS_SUCCESSを返します。 それ以外の場合、このメソッドは次のいずれかの値を返す可能性があります。

リターン コード 形容
STATUS_INVALID_PARAMETER
指定されたパラメーターが無効です。
STATUS_INVALID_DEVICE_REQUEST
指定した resource-requirements-list オブジェクトは、指定された resource-range-list オブジェクトを所有していません。
STATUS_INSUFFICIENT_RESOURCES
フレームワークは、リソース範囲リスト オブジェクトを格納する領域を割り当てませんでした。
STATUS_ARRAY_BOUNDS_EXCEEDED
Index パラメーターに指定した値が大きすぎます。
 

ドライバーが無効なオブジェクト ハンドルを提供すると、システム バグ チェックが発生します。

備考

WdfIoResourceRequirementsListInsertIoResList メソッドは、Index 値が識別する論理構成の前に、RequirementsList パラメーターが指定するリソース要件リストに、IoResList パラメーターが指定する論理構成を挿入します。

リソース要件リストの末尾に論理構成を追加するには、WDF_INSERT_AT_ENDまたは WdfIoResourceRequirementsListGetCount からの戻り値を Index 値として 使用します。 または、WdfIoResourceRequirementsListAppendIoResList メソッドを使用します。

リソース要件の一覧の詳細については、「Framework-Based ドライバー のハードウェア リソースの」を参照してください。

次のコード例は、EvtDeviceResourceRequirementsQuery コールバック関数で 2 つの空の論理構成を作成し、リソース要件リストに追加する方法を示しています。

NTSTATUS
Example_EvtDeviceResourceRequirementsQuery(
    IN WDFDEVICE Device,
    IN WDFIORESREQLIST RequirementsList
    )
{
    NTSTATUS  status;
    WDFIORESLIST  logConfig1;
    WDFIORESLIST  logConfig2;

    status = WdfIoResourceListCreate(
                                     RequirementsList,
                                     WDF_NO_OBJECT_ATTRIBUTES,
                                     &logConfig1
                                     );
    if (!NT_SUCCESS(status)) {
        return status;
    }

    status = WdfIoResourceRequirementsListAppendIoResList(
                                             RequirementsList,
                                             logConfig1
                                             );
    if (!NT_SUCCESS(status)) {
        return status;
    }

    status = WdfIoResourceListCreate(
                                     RequirementsList,
                                     WDF_NO_OBJECT_ATTRIBUTES,
                                     &logConfig2
                                     );
    if (!NT_SUCCESS(status)) {
        return status;
    }
    status = WdfIoResourceRequirementsListInsertIoResList(
                                             RequirementsList,
                                             logConfig2,
                                             WDF_INSERT_AT_END
                                             );
    if (!NT_SUCCESS(status)) {
        return status;
    }
...
}

必要条件

要件 価値
ターゲット プラットフォーム 万国
最小 KMDF バージョン 1.0
ヘッダー wdfresource.h (Wdf.h を含む)
ライブラリ Wdf01000.sys (フレームワーク ライブラリのバージョン管理を参照)。
IRQL <=DISPATCH_LEVEL
DDI コンプライアンス規則 する DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf)

関連項目

WdfIoResourceListCreate

WdfIoResourceRequirementsListAppendIoResList