SetupDiSetClassPropertyW 函式 (setupapi.h)
SetupDiSetClassProperty 函式會設定裝置安裝類別或裝置介面類別的類別屬性。
語法
WINSETUPAPI BOOL SetupDiSetClassPropertyW(
[in] const GUID *ClassGuid,
[in] const DEVPROPKEY *PropertyKey,
[in] DEVPROPTYPE PropertyType,
[in, optional] const PBYTE PropertyBuffer,
[in] DWORD PropertyBufferSize,
[in] DWORD Flags
);
參數
[in] ClassGuid
GUID 的指標,識別要為其設定裝置屬性的裝置安裝類別或裝置介面類別。 如需如何指定類別類型的詳細資訊,請參閱 Flags 參數。
[in] PropertyKey
DEVPROPKEY 結構的指標,表示要設定之裝置類別屬性的裝置屬性索引鍵。
[in] PropertyType
DEVPROPTYPE 型別值,表示裝置類別屬性的屬性數據類型識別碼。 如需屬性數據類型識別碼的詳細資訊,請參閱本主題稍後的一節。
[in, optional] PropertyBuffer
緩衝區的指標,其中包含裝置類別的屬性值。 如果正在刪除屬性或數據,則必須將此指標設定為 NULL, 而且 PropertyBufferSize 必須設定為零。 如需屬性數據的詳細資訊,請參閱本主題稍後的一節。
[in] PropertyBufferSize
PropertyBuffer 緩衝區的大小,以位元組為單位。 如果 PropertyBuffer 設定為 NULL,PropertyBufferSize 必須設定為零。
[in] Flags
下列其中一個值,指定類別是裝置安裝類別還是裝置介面類別:
DICLASSPROP_INSTALLER
ClassGuid 指定裝置安裝類別。 此旗標不能與DICLASSPROP_INTERFACE搭配使用。
DICLASSPROP_INTERFACE
ClassGuid 指定裝置介面類別。 此旗標不能與DICLASSPROP_INSTALLER搭配使用。
傳回值
SetupDiSetClassProperty 如果成功,則會傳回 TRUE 。 否則,它會傳回 FALSE,而且可以藉由呼叫 GetLastError 來擷取記錄的錯誤。
下表包含此函式可能會記錄的一些較常見的錯誤碼。
傳回碼 | Description |
---|---|
|
Flags 的值無效。 |
|
ClassGuid 指定的裝置安裝類別無效。 只有在指定DICLASSPROP_INSTALLER旗標時,才會發生此錯誤。 |
|
裝置介面參考字串無效。 只有在指定DICLASSPROP_INTERFACE旗標時,才會發生此錯誤。 |
|
PropertyKey 所提供的屬性索引鍵無效。 |
|
未指定的內部數據值無效。 如果 ClassGuid 值不是有效的 GUID,或者屬性值與 PropertyType 所指定的屬性類型不一致,可能會記錄此錯誤。 |
|
用戶緩衝區無效。 其中一個可能性是 PropertyBuffer 是 NULL, 而 PropertyBufferSize 不是零。 |
|
ClassGuid 指定的裝置介面類別不存在。 只有在指定DICLASSPROP_INTERFACE旗標時,才會發生此錯誤。 |
|
傳遞至系統呼叫的內部數據緩衝區太小。 |
|
沒有足夠的系統記憶體可用來完成作業。 |
|
找不到未指定的專案。 其中一個可能性是要刪除的屬性不存在。 |
|
呼叫端沒有系統管理員許可權。 |
備註
SetupDiSetClassProperty 是 統一裝置屬性模型的一部分。
SetupAPI 僅支援 SetupDiSetClassProperty 的 Unicode 版本。
SetupDiSetClassProperty 的呼叫端必須是 Administrators 群組的成員,才能設定裝置介面屬性。
SetupDiSetClassProperty 會對屬性數據類型標識碼和屬性值強制執行需求。
若要取得代表本機計算機上裝置類別所設定裝置屬性的裝置屬性,請呼叫 SetupDiGetClassPropertyKeys。
若要擷取本機電腦上的裝置類別屬性,請呼叫 SetupDiGetClassProperty,以及擷取遠端電腦上的裝置類別屬性,請呼叫 SetupDiGetClassPropertyEx。
若要在遠端電腦上設定裝置類別屬性,請呼叫 SetupDiSetClassPropertyEx。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | 可在 Windows Vista 和更新版本的 Windows 中使用。 |
目標平台 | DesktopFor universal, call CM_Set_Class_Property |
標頭 | setupapi.h (包括 Setupapi.h) |
程式庫 | Setupapi.lib |