WdfCmResourceListAppendDescriptor 関数 (wdfresource.h)
[KMDF にのみ適用]
WdfCmResourceListAppendDescriptor メソッドは、指定したリソース リストの末尾にリソース記述子を追加します。
構文
NTSTATUS WdfCmResourceListAppendDescriptor(
[in] WDFCMRESLIST List,
[in] PCM_PARTIAL_RESOURCE_DESCRIPTOR Descriptor
);
パラメーター
[in] List
デバイスのハードウェア リソースの一覧を表すフレームワーク リソースリスト オブジェクトへのハンドル。
[in] Descriptor
ハードウェア リソースを記述する CM_PARTIAL_RESOURCE_DESCRIPTOR 構造体へのポインター。
戻り値
WdfCmResourceListAppendDescriptor は、操作が成功した場合にSTATUS_SUCCESSを返します。 それ以外の場合、このメソッドは次のいずれかの値を返す可能性があります。
リターン コード | 説明 |
---|---|
|
無効なパラメーターが指定されました。 |
|
ドライバーは 、List パラメーターが指定した論理構成に記述子を追加できませんでした。 たとえば、ドライバーは、 その EvtDevicePrepareHardware または EvtDeviceReleaseHardware コールバック関数が受信した論理構成を変更できませんでした。 |
|
フレームワークでは、 Descriptor パラメーターが指定した記述子を格納する領域を割り当てませんでした。 |
ドライバーが無効なオブジェクト ハンドルを提供すると、システム バグ チェックが発生します。
注釈
フレームワークは 、CM_PARTIAL_RESOURCE_DESCRIPTOR 構造体の内容を内部ストレージにコピーするため、 WdfCmResourceListAppendDescriptor を呼び出すドライバー ルーチンは、構造体をローカルに割り当てることができます。 ドライバーが WdfCmResourceListAppendDescriptor を呼び出した後、 CM_PARTIAL_RESOURCE_DESCRIPTOR 構造体を再利用できます。
リソース リストの詳細については、「 Framework-Based ドライバーのハードウェア リソース」を参照してください。
例
次のコード例では、 EvtDeviceResourcesQuery コールバック関数が受け取るリソース リストの末尾にリソース記述子を追加します。
NTSTATUS
PdoEvtDeviceResourcesQuery(
IN WDFDEVICE Device,
IN WDFCMRESLIST Resources
)
{
CM_PARTIAL_RESOURCE_DESCRIPTOR newDescriptor;
...
newDescriptor.Type = CmResourceTypePort;
newDescriptor.ShareDisposition = CmResourceShareDeviceExclusive;
newDescriptor.Flags = CM_RESOURCE_PORT_IO|CM_RESOURCE_PORT_16_BIT_DECODE;
newDescriptor.u.Port.Length = 1;
newDescriptor.u.Port.Start = 0;
status = WdfCmResourceListAppendDescriptor(
Resources,
&newDescriptor
);
...
}
要件
要件 | 値 |
---|---|
対象プラットフォーム | ユニバーサル |
最小 KMDF バージョン | 1.0 |
Header | wdfresource.h (Wdf.h を含む) |
Library | Wdf01000.sys (「Framework ライブラリのバージョン管理」を参照)。 |
IRQL | <=DISPATCH_LEVEL |
DDI コンプライアンス規則 | DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf) |