Share via


統合デバイス プロパティ モデルへのアクセス

このトピックでは、Windows Driver Frameworks (WDF) ドライバーが、統合デバイス プロパティ モデルを通じて公開されるプロパティを取得または変更する方法について説明します。 一覧表示されているメソッドは、ユーザーモード ドライバー フレームワーク (UMDF) バージョン 2.0 および カーネルモード ドライバー フレームワーク (KMDF) バージョン 1.13 以降で使用できます。

KMDF ドライバーと UMDF ドライバーの両方で、次のメソッドを呼び出すことができます。

KMDF ドライバーと UMDF ドライバーはどちらも、WdfDeviceCreate を呼び出す前にのみ、次のメソッドを呼び出すことができます。 WdfDeviceCreate 呼び出しの詳細は、「フレームワーク デバイス オブジェクトの作成」を参照してください。

ドライバーは、WdfDeviceCreate を呼び出した後、対応する WdfDeviceXxxProperty メソッドを呼び出すことによって、デバイスのプロパティ情報を取得できます。

上記の -Ex メソッドは、DEVICE_REGISTRY_PROPERTY を使用して指定できるサブセットではなく、WDF_DEVICE_PROPERTY_DATA 構造体を使用してプロパティを指定できる点で、-Ex 以外のメソッドとは異なります。

デバイス プロパティ データを受信する前に、ドライバーは通常、必要なバッファー サイズを取得するためだけに WdfXxxQueryProperty を呼び出します。 一部のプロパティでは、必要なサイズが返されたときと、ドライバーが WdfXxxQueryProperty を再度呼び出すタイミングの間で、データ サイズが変更される可能性があります。 したがってドライバーは、戻り値の状態が STATUS_BUFFER_TOO_SMALL ではない間に実行されるループ内で WdfXxxQueryProperty を呼び出す必要があります。

WdfXxxQueryProperty は、必要なバッファー サイズが既知で変更されていない場合にのみ使用することをお勧めします。この場合、ドライバーは WdfXxxQueryProperty を 1 回だけ呼び出す必要があるためです。 必要なバッファー サイズが不明または異なる場合、ドライバーは WdfXxxAllocAndQueryProperty を呼び出す必要があります。

デバイス インターフェイス プロパティへのアクセス

UMDF ドライバーでは、次のメソッドを使用して、統合プロパティ モデルを通じて公開されるデバイス インターフェイスのプロパティを取得または変更できます。

デバイス インターフェイス プロパティを取得または変更するには、KMDF ドライバーで IoGetDeviceInterfacePropertyData または IoSetDeviceInterfacePropertyData を直接呼び出す必要があります。