次の方法で共有


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を返します。 それ以外の場合、このメソッドは次のいずれかの値を返す可能性があります。

リターン コード 形容
STATUS_INVALID_PARAMETER
無効なパラメーターが指定されました。
STATUS_ACCESS_DENIED
ドライバーは、List パラメーターが指定された論理構成に記述子を追加できませんでした。 たとえば、ドライバーは、その EvtDevicePrepareHardware または EvtDeviceReleaseHardware コールバック関数 受信した論理構成を変更できませんでした。
STATUS_INSUFFICIENT_RESOURCES
フレームワークは、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
ヘッダー wdfresource.h (Wdf.h を含む)
ライブラリ Wdf01000.sys (フレームワーク ライブラリのバージョン管理を参照)。
IRQL <=DISPATCH_LEVEL
DDI コンプライアンス規則 する DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf)

関連項目

CM_PARTIAL_RESOURCE_DESCRIPTOR

EvtDevicePrepareHardware

EvtDeviceReleaseHardware

EvtDeviceResourcesQuery

WdfCmResourceListInsertDescriptor