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 |