SetupDiGetClassPropertyKeys 函式 (setupapi.h)
SetupDiGetClassPropertyKeys 函式會擷取裝置屬性索引鍵的陣列,代表針對裝置安裝類別或裝置介面類別別所設定的裝置屬性。
語法
WINSETUPAPI BOOL SetupDiGetClassPropertyKeys(
[in] const GUID *ClassGuid,
[out, optional] DEVPROPKEY *PropertyKeyArray,
[in] DWORD PropertyKeyCount,
[out, optional] PDWORD RequiredPropertyKeyCount,
[in] DWORD Flags
);
參數
[in] ClassGuid
表示裝置安裝類別或裝置介面類別別之 GUID 的指標。 SetupDiGetClassPropertyKeys 會 擷取代表為指定類別設定之裝置屬性的裝置屬性索引鍵陣列。 如需指定類別類型的相關資訊,請參閱 Flags 參數。
[out, optional] PropertyKeyArray
緩衝區的指標,接收 DEVPROPKEY型別值的陣列,其中每個值都是代表裝置類別所設定之裝置屬性的裝置屬性索引鍵。 指標是選擇性的,而且可以是 Null。 如需詳細資訊,請參閱本主題稍後的一節。
[in] PropertyKeyCount
PropertyKeyArray緩衝區的 DEVPROPKEY 類型值大小。 如果 PropertyKeyArray 設定為 Null, PropertyKeyCount 必須設定為零。
[out, optional] RequiredPropertyKeyCount
接收所要求屬性索引鍵數目之 DWORD 型別變數的指標。 參數是選擇性的,而且可以設定為 Null。
[in] Flags
下列其中一個值,指定是否要擷取裝置安裝類別或裝置介面類別別的屬性索引鍵:
DICLASSPROP_INSTALLER
ClassGuid 會指定裝置設定類別。 此旗標無法與DICLASSPROP_INTERFACE搭配使用。
DICLASSPROP_INTERFACE
ClassGuid 指定裝置介面類別別。 此旗標無法與DICLASSPROP_INSTALLER搭配使用。
傳回值
如果成功,SetupDiGetClassPropertyKeys 會傳回 TRUE 。 否則,它會傳回 FALSE,而且可以藉由呼叫 GetLastError來擷取記錄的錯誤。
下表包含此函式可能會記錄的一些較常見的錯誤碼。
傳回碼 | 描述 |
---|---|
|
Flags的值無效。 |
|
如果指定DICLASSPROP_INSTALLER旗標,這個錯誤碼表示 ClassGuid 指定的裝置安裝類別不存在。 |
|
ClassGuild所指定之裝置介面的參考字串無效。 如果指定DICLASSPROP_INTERFACE旗標,則可以傳回此錯誤。 |
|
未指定的資料值無效。 其中一個可能性是 ClassGuid 值無效。 |
|
未指定的參數無效。 |
|
使用者緩衝區無效。 其中一個可能性是 PropertyKeyArray 是 Null,而 PropertKeyCount 不是零。 |
|
如果指定DICLASSPROP_INTERFACE旗標,這個錯誤碼表示 ClassGuid 指定的裝置介面類別別不存在。 |
|
PropertyKeyArray緩衝區不夠大,無法保存所有屬性索引鍵,或傳遞至系統呼叫的內部資料緩衝區太小。 |
|
沒有足夠的系統記憶體可用來完成作業。 |
|
呼叫端沒有系統管理員許可權。 |
備註
SetupDiGetClassPropertyKeys 是 統一裝置屬性模型的一部分。
SetupDiGetClassPropertyKeys的呼叫端必須是 Administrators 群組的成員,才能擷取裝置類別的裝置屬性金鑰。
如果 PropertyKeyArray 緩衝區不夠大,無法保存所有要求的屬性索引鍵, 則 SetupDiGetClassPropertyKeys 不會擷取任何屬性索引鍵並傳回ERROR_INSUFFICIENT_BUFFER。 如果呼叫端提供RequiredPropertyKeyCount指標,SetupDiGetClassPropertyKeys會將PropertyKeyArray緩衝區的 DEVPROPKEY 類型值中,將 *RequiredPropertyKeyCount的值設定為所需的大小。
若要擷取本機電腦上的裝置類別屬性,請呼叫 SetupDiGetClassProperty。 若要在本機電腦上設定裝置類別屬性,請呼叫 SetupDiSetClassProperty。
若要擷取遠端電腦上的裝置安裝類別或裝置介面類別別的屬性索引鍵,請呼叫 SetupDiGetClassPropertyKeysEx。
規格需求
最低支援的用戶端 | 適用于 Windows Vista 和更新版本的 Windows。 |
目標平台 | DesktopFor universal, call CM_Get_Class_Property_Keys |
標頭 | setupapi.h (包括 Setupapi.h) |
程式庫 | Setupapi.lib |
Dll | Setupapi.dll |