WdfIoResourceListInsertDescriptor 関数 (wdfresource.h)
[KMDF にのみ適用]
WdfIoResourceListInsertDescriptor メソッドは、リソース要件リストの 論理構成にリソース記述子を挿入します。
構文
NTSTATUS WdfIoResourceListInsertDescriptor(
[in] WDFIORESLIST ResourceList,
[in] PIO_RESOURCE_DESCRIPTOR Descriptor,
[in] ULONG Index
);
パラメーター
[in] ResourceList
デバイスのハードウェア リソースの論理構成を表すフレームワーク リソース範囲リスト オブジェクトへのハンドル。
[in] Descriptor
ハードウェア リソースを記述する IO_RESOURCE_DESCRIPTOR 構造体へのポインター。
[in] Index
ResourceList が指定する論理構成に既に存在するリソース記述子のセットのインデックスとして使用 される、0 から始まる値。 論理構成の末尾にリソース記述子を追加するには、WDF_INSERT_AT_ENDまたは WdfIoResourceListGetCount から戻り値指定します。
戻り値
WdfIoResourceListInsertDescriptor 、操作が成功した場合にSTATUS_SUCCESSを返します。 それ以外の場合、このメソッドは次のいずれかの値を返す可能性があります。
リターン コード | 形容 |
---|---|
|
無効なパラメーターが指定されました。 |
|
ドライバーは、論理構成に記述子を追加できませんでした。 |
|
フレームワークは、記述子を格納する領域を割り当てませんでした。 |
|
Index パラメーターが指定する値が大きすぎます。 |
ドライバーが無効なオブジェクト ハンドルを提供すると、システム バグ チェックが発生します。
備考
WdfIoResourceListInsertDescriptor メソッドは、Index 値が識別するリソース記述子の前に、Descriptor パラメーターが指定するリソース記述子を、ResourceList パラメーターが指定する論理構成に挿入します。
論理構成の末尾にリソース記述子を追加するには、Index 値 WdfIoResourceListGetCount からWDF_INSERT_AT_ENDまたは戻り値を指定します。 または、WdfIoResourceListAppendDescriptor メソッドを使用します。
フレームワークは、IO_RESOURCE_DESCRIPTOR 構造体の内容を内部ストレージにコピーするため、WdfIoResourceListInsertDescriptor を呼び出すドライバー ルーチンは、構造体をローカルに割り当てることができます。 ドライバーが WdfIoResourceListInsertDescriptor 呼び出した後、ドライバーは IO_RESOURCE_DESCRIPTOR 構造体を再利用できます。
リソース要件リストと論理構成の詳細については、「Framework-Based ドライバー のハードウェア リソースの」を参照してください。
例
次のコード例では、リソース記述子を初期化し、論理構成の末尾に記述子を追加します。
IO_RESOURCE_DESCRIPTOR descriptor;
RtlZeroMemory(&descriptor, sizeof(descriptor));
descriptor.Option = 0;
descriptor.Type = CmResourceTypePort;
descriptor.ShareDisposition = CmResourceShareDeviceExclusive;
descriptor.Flags = CM_RESOURCE_PORT_IO|CM_RESOURCE_PORT_16_BIT_DECODE;
descriptor.u.Port.Length = 1;
descriptor.u.Port.Alignment = 0x01;
descriptor.u.Port.MinimumAddress.QuadPart = 0;
descriptor.u.Port.MaximumAddress.QuadPart = 0xFFFF;
status = WdfIoResourceListInsertDescriptor(
logConfig,
&descriptor,
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) |