SetupDiGetDevicePropertyKeys 函式 (setupapi.h)
SetupDiGetDevicePropertyKeys 函式會擷取裝置屬性索引鍵的陣列,代表為裝置實例設定的裝置屬性。
語法
WINSETUPAPI BOOL SetupDiGetDevicePropertyKeys(
[in] HDEVINFO DeviceInfoSet,
[in] PSP_DEVINFO_DATA DeviceInfoData,
[out, optional] DEVPROPKEY *PropertyKeyArray,
[in] DWORD PropertyKeyCount,
[out, optional] PDWORD RequiredPropertyKeyCount,
[in] DWORD Flags
);
參數
[in] DeviceInfoSet
裝置資訊集的控制碼。 此裝置資訊集包含此函式擷取裝置屬性索引鍵陣列的裝置實例。 屬性索引鍵代表為裝置實例設定的裝置屬性。
[in] DeviceInfoData
SP_DEVINFO_DATA結構的指標,表示要擷取所要求之裝置屬性索引鍵陣列的裝置實例。
[out, optional] PropertyKeyArray
接收 DEVPROPKEY類型值陣列之緩衝區的指標,其中每個值都是裝置屬性索引鍵,代表為裝置實例設定的裝置屬性。 指標是選擇性的,而且可以是 Null。 如需詳細資訊,請參閱本主題稍後的一節。
[in] PropertyKeyCount
PropertyKeyArray緩衝區的 DEVPROPKEY 類型值大小。如果PropertyKeyArray設定為Null,PropertyKeyCount必須設定為零。
[out, optional] RequiredPropertyKeyCount
接收所要求裝置屬性索引鍵數目的 DWORD 型別變數指標。 指標是選擇性的,而且可以設定為 Null。
[in] Flags
此參數必須設定為零。
傳回值
如果成功,SetupDiGetDevicePropertyKeys 會傳回 TRUE 。 否則,它會傳回 FALSE,而且可以藉由呼叫 GetLastError來擷取記錄的錯誤。
下表包含此函式可能會記錄的一些較常見的錯誤碼。
傳回碼 | Description |
---|---|
|
Flags的值不是零。 |
|
DevInfoSet所指定的裝置資訊集無效。 |
|
提供的參數無效。 其中一個可能性是裝置資訊元素無效。 |
|
內部資料值無效。 |
|
使用者緩衝區無效。 其中一個可能性是 PropertyKeyArray 是 Null , 而 PropertKeyCount 不是零。 |
|
DevInfoData指定的裝置實例不存在。 |
|
PropertyKeyArray緩衝區太小,無法保存所有要求的屬性索引鍵。 |
|
沒有足夠的系統記憶體可用來完成作業。 |
備註
SetupDiGetDevicePropertyKeys 是 統一裝置屬性模型的一部分。
如果 ProperKeyArray 緩衝區不夠大,無法保存所有要求的屬性索引鍵, SetupDiGetDevicePropertyKeys 就不會擷取任何屬性索引鍵並傳回ERROR_INSUFFICIENT_BUFFER。 如果呼叫端提供 RequiredPropertyKeyCount 指標, SetupDiGetDevicePropertyKeys 會將 *RequiredPropertyKeyCount 的值設定為 PropertyKeyArray 緩衝區的 DEVPROPKEY 類型值中所需的大小。
若要擷取裝置實例屬性,請呼叫 SetupDiGetDeviceProperty,以及若要設定裝置實例屬性,請呼叫 SetupDiSetDeviceProperty。
規格需求
最低支援的用戶端 | 適用于 Windows Vista 和更新版本的 Windows。 |
目標平台 | DesktopFor universal, call CM_Get_DevNode_Property_Keys |
標頭 | setupapi.h (包括 Setupapi.h) |
程式庫 | Setupapi.lib |
Dll | Setupapi.dll |