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 |