次の方法で共有


WdfIoResourceListUpdateDescriptor 関数 (wdfresource.h)

[KMDF にのみ適用]

WdfIoResourceListUpdateDescriptor メソッドは、リソース要件リストの論理構成内のリソース記述子を更新します。

構文

void WdfIoResourceListUpdateDescriptor(
  [in] WDFIORESLIST            ResourceList,
  [in] PIO_RESOURCE_DESCRIPTOR Descriptor,
  [in] ULONG                   Index
);

パラメーター

[in] ResourceList

デバイスのハードウェア リソースの論理構成を表すフレームワーク リソース範囲リスト オブジェクトへのハンドル。

[in] Descriptor

ハードウェア リソースを記述する IO_RESOURCE_DESCRIPTOR 構造体へのポインター。

[in] Index

ResourceList が指定する論理構成に既に存在するリソース記述子のセットのインデックスとして使用される 0 から始まる値。

戻り値

なし

解説

ドライバーが無効なオブジェクト ハンドルを提供すると、バグ チェックが発生します。

WdfIoResourceListUpdateDescriptor メソッドは、Index パラメーターが識別するリソース記述子を検索します。 次に、 メソッドは 、Descriptor パラメーターが指定するリソース記述子を 、Index が指定する記述子にコピーします。

リソース要件リストと論理構成の詳細については、「 Framework-Based ドライバーのハードウェア リソース」を参照してください。

次のコード例では、新しいリソース記述子を初期化し、 WdfIoResourceListUpdateDescriptor を呼び出して、論理構成の 2 番目の記述子を新しい記述子に置き換えます。

IO_RESOURCE_DESCRIPTOR newDescriptor;

RtlZeroMemory(
              &newDescriptor,
              sizeof(newDescriptor)
              );

newDescriptor.Option = 0;
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.Alignment = 0x01;
newDescriptor.u.Port.MinimumAddress.QuadPart = 0;
newDescriptor.u.Port.MaximumAddress.QuadPart = 0xFFFF;

WdfIoResourceListUpdateDescriptor(
                                  Reslist,
                                  &newDescriptor,
                                  1
                                  );

要件

要件
対象プラットフォーム ユニバーサル
最小 KMDF バージョン 1.0
Header wdfresource.h (Wdf.h を含む)
Library Wdf01000.sys (「Framework ライブラリのバージョン管理」を参照)。
IRQL <=DISPATCH_LEVEL
DDI コンプライアンス規則 DriverCreate(kmdf)KmdfIrql(kmdf)KmdfIrql2(kmdf)、KmdfIrqlExplicit(kmdf)

こちらもご覧ください

IO_RESOURCE_DESCRIPTOR