次の方法で共有


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
Header wdfresource.h (Wdf.h を含む)
Library Wdf01000.sys (「Framework ライブラリのバージョン管理」を参照)。
IRQL <=DISPATCH_LEVEL
DDI コンプライアンス規則 DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf)

こちらもご覧ください

CM_PARTIAL_RESOURCE_DESCRIPTOR

EvtDevicePrepareHardware

EvtDeviceReleaseHardware

EvtDeviceResourcesQuery

WdfCmResourceListInsertDescriptor