共用方式為


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

呼叫端配置的變數指標,方法會輸出計數,以指定實際寫入緩衝區的位元組數目。 如果 BufferLeng th 中指定的緩衝區大小太小,無法保存屬性數據,則方法會改為輸出屬性數據所需的位元元組數目,並傳回STATUS_BUFFER_TOO_SMALL。

傳回值

PcGetDeviceProperty 如果呼叫成功,就會傳回STATUS_SUCCESS。 否則,它會傳回適當的錯誤碼。 如果 BufferLength 中指定的緩衝區大小不足以包含要求的屬性數據,則例程會傳回STATUS_BUFFER_TOO_SMALL。

言論

可能需要兩個呼叫 PcGetDeviceProperty,才能判斷所需的 BufferLength。 在第一次呼叫中,BufferLength 可以是零或所需緩衝區大小的最佳猜測估計值。 如果傳回狀態為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