次の方法で共有


PcGetDeviceProperty 関数 (portcls.h)

PcGetDeviceProperty 関数は、レジストリから要求されたデバイス プロパティを返します。

構文

PORTCLASSAPI NTSTATUS PcGetDeviceProperty(
  [in]  PVOID                    DeviceObject,
  [in]  DEVICE_REGISTRY_PROPERTY DeviceProperty,
  [in]  ULONG                    BufferLength,
  [out] PVOID                    PropertyBuffer,
  [out] PULONG                   ResultLength
);

パラメーター

[in] DeviceObject

デバイスのデバイス オブジェクトへのポインター。 このパラメーターは 、DEVICE_OBJECT システム構造を指しますが、PVOID 型にキャストされます。

[in] DeviceProperty

要求されるプラグ アンド プレイデバイス プロパティを指定します。 プロパティ指定子の値の一覧については、次の「解説」セクションを参照してください。

[in] BufferLength

要求されたプロパティ データを受信するバッファーの長さをバイト単位で指定します。

[out] PropertyBuffer

メソッドが要求されたプロパティ データを書き込む呼び出し元によって割り当てられたバッファーへのポインター。 バッファーは、 BufferLength で指定されたバイト数を格納するのに十分な大きさである必要があります。

[out] ResultLength

メソッドがバッファーに実際に書き込まれたバイト数を指定するカウントを出力する呼び出し元によって割り当てられた変数へのポインター。 BufferLength で指定されたバッファー サイズが小さすぎてプロパティ データを保持できない場合、 メソッドは代わりにプロパティ データに必要なバイト数を出力し、STATUS_BUFFER_TOO_SMALLを返します。

戻り値

PcGetDeviceProperty は、呼び出しが成功した場合STATUS_SUCCESSを返します。 それ以外の場合は、適切なエラー コードを返します。 BufferLength で指定されたバッファー サイズが、要求されたプロパティ データを格納するのに十分な大きさではなかった場合、ルーチンはSTATUS_BUFFER_TOO_SMALLを返します。

注釈

DeviceProperty パラメーターを、ヘッダー ファイル wdm.h から次のDEVICE_REGISTRY_PROPERTY列挙値のいずれかに設定します。

DevicePropertyAddress

DevicePropertyBootConfiguration

DevicePropertyBootConfigurationTranslated

DevicePropertyBusNumber

DevicePropertyBusTypeGuid

DevicePropertyClassGuid

DevicePropertyClassName

DevicePropertyCompatibleIDs

DevicePropertyDetachability

DevicePropertyDeviceDescription

DevicePropertyDriverKeyName

DevicePropertyEnumeratorName

DevicePropertyFriendlyName

DevicePropertyHardwareID

DevicePropertyInstallState

DevicePropertyLegacyBusType

DevicePropertyLocationInformation

DevicePropertyManufacturer

DevicePropertyPhysicalDeviceObjectName

DevicePropertyUINumber

上記の DevicePropertyXxx 値の説明については、「 IoGetDeviceProperty」を参照してください。

必要な BufferLength を特定するには、PcGetDeviceProperty への 2 回の呼び出しが必要になる場合があります。 最初の呼び出しでは、 BufferLength を 0 にすることも、必要なバッファー サイズの推定値を推測することもできます。 戻り状態がSTATUS_BUFFER_TOO_SMALLの場合、呼び出し元は ResultLength を介して出力されたサイズのバッファーを割り当て、 PcGetDeviceProperty をもう一度呼び出す必要があることを意味します。

要件

要件
サポートされている最小のクライアント PortCls システム ドライバーは、Microsoft Windows 98/Me および Windows 2000 以降のオペレーティング システムで PcGetDeviceProperty 関数を実装します。
対象プラットフォーム ユニバーサル
Header portcls.h (Portcls.h を含む)
Library Portcls.lib
IRQL PASSIVE_LEVEL

こちらもご覧ください

DEVICE_OBJECT

IoGetDeviceProperty