WdfIoResourceRequirementsListInsertIoResList 関数 (wdfresource.h)
[KMDF にのみ適用]
WdfIoResourceRequirementsListInsertIoResList メソッドは、リソース要件リストに論理構成を挿入します。
構文
NTSTATUS WdfIoResourceRequirementsListInsertIoResList(
[in] WDFIORESREQLIST RequirementsList,
[in] WDFIORESLIST IoResList,
[in] ULONG Index
);
パラメーター
[in] RequirementsList
デバイスのリソース要件リストを表すフレームワーク resource-requirements-list オブジェクトへのハンドル。
[in] IoResList
デバイスのハードウェア リソースの論理構成を表すフレームワーク リソース範囲リスト オブジェクトへのハンドル。
[in] Index
RequirementsList が指定するリソース要件リストに既に含まれている論理構成のセットのインデックスとして使用される 0 から始まる値。 リストの末尾に構成を追加するには、 WDF_INSERT_AT_ENDまたは WdfIoResourceRequirementsListGetCount からの戻り値を指定します。
戻り値
操作が成功した場合、WdfIoResourceRequirementsListInsertIoResList はSTATUS_SUCCESSを返します。 それ以外の場合、このメソッドは次のいずれかの値を返す可能性があります。
リターン コード | 説明 |
---|---|
|
指定された無効なパラメーター。 |
|
指定した resource-requirements-list オブジェクトは、指定された resource-range-list オブジェクトを所有していません。 |
|
フレームワークは、resource-range-list オブジェクトを格納する領域を割り当てませんでした。 |
|
Index パラメーターに指定された値が大きすぎます。 |
ドライバーが無効なオブジェクト ハンドルを提供すると、システム バグ チェックが発生します。
注釈
WdfIoResourceRequirementsListInsertIoResList メソッドは、Index 値が識別する論理構成の前に、IoResList パラメーターが指定する論理構成を RequirementsList パラメーターが指定するリソース要件リストに挿入します。
リソース要件リストの末尾に論理構成を追加するには、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 |
Header | wdfresource.h (Wdf.h を含む) |
Library | Wdf01000.sys (「Framework ライブラリのバージョン管理」を参照)。 |
IRQL | <=DISPATCH_LEVEL |
DDI コンプライアンス規則 | DriverCreate(kmdf)、 KmdfIrql(kmdf)、 KmdfIrql2(kmdf)、KmdfIrqlExplicit(kmdf) |