次の方法で共有


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

取得するデバイス プロパティを識別する DEVICE_REGISTRY_PROPERTY型指定された列挙子。

[in] BufferLength

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

[out] PropertyBuffer

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

[out] ResultLength

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

戻り値

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

備考

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

必要条件

要件 価値
サポートされる最小クライアント PortCls システム ドライバーは、Microsoft Windows 98/Me および Windows 2000 以降のオペレーティング システムで PcGetDeviceProperty 関数を実装します。
ターゲット プラットフォーム 万国
ヘッダー portcls.h (Portcls.h を含む)
ライブラリ Portcls.lib
IRQL PASSIVE_LEVEL

関連項目

DEVICE_OBJECT

IoGetDeviceProperty