SetupDiSetDevicePropertyW 函式 (setupapi.h)
SetupDiSetDeviceProperty 函式會設定裝置實例屬性。
語法
WINSETUPAPI BOOL SetupDiSetDevicePropertyW(
[in] HDEVINFO DeviceInfoSet,
[in] PSP_DEVINFO_DATA DeviceInfoData,
[in] const DEVPROPKEY *PropertyKey,
[in] DEVPROPTYPE PropertyType,
[in, optional] const PBYTE PropertyBuffer,
[in] DWORD PropertyBufferSize,
[in] DWORD Flags
);
參數
[in] DeviceInfoSet
裝置資訊集的控制碼。 此裝置資訊集包含裝置資訊專案,表示要設定裝置實例屬性的裝置實例。
[in] DeviceInfoData
SP_DEVINFO_DATA結構的指標,可識別要設定裝置實例屬性的裝置實例。
[in] PropertyKey
DEVPROPKEY結構的指標,表示要設定之裝置實例屬性的裝置屬性索引鍵。
[in] PropertyType
DEVPROPTYPE型別值,代表裝置實例屬性的屬性資料類型識別碼。 如需詳細資訊,請參閱本主題稍後的一節。
[in, optional] PropertyBuffer
緩衝區的指標,其中包含裝置實例屬性值。 如果要刪除或設定為 Null 值,這個指標必須是 Null, 而且 PropertyBufferSize 必須設定為零。
[in] PropertyBufferSize
PropertyBuffer緩衝區的大小,以位元組為單位。 如果 PropertyBuffer 為 Null, PropertyBufferSize 必須設定為零。
[in] Flags
此參數必須設定為零。
傳回值
如果函式成功,函式會傳回 TRUE 。 否則,它會傳回 FALSE,而且可以藉由呼叫 GetLastError來擷取記錄的錯誤。
下表包含此函式可能會記錄的一些較常見的錯誤碼。
傳回碼 | Description |
---|---|
|
Flags的值不是零。 |
|
DevInfoSet所指定的裝置資訊集無效。 |
|
提供的參數無效。 其中一個可能性是裝置資訊元素無效。 |
|
PropertyKey所提供的屬性索引鍵無效,或屬性無法寫入。 |
|
PropertyType所提供的 property-data-type 識別碼,或是PropertyBuffer所提供的屬性值無效。 |
|
使用者緩衝區無效。 其中一個可能性是 PropertyBuffer 是 Null, 而 PropertyBufferSize 不是零。 |
|
DevInfoData指定的裝置實例不存在。 |
|
傳遞至系統呼叫的內部資料緩衝區太小。 |
|
沒有足夠的系統記憶體可用來完成作業。 |
|
找不到未指定的內部專案。 其中一個可能性是要刪除的屬性不存在。 |
|
呼叫端沒有系統管理員許可權。 |
備註
SetupDiSetDeviceProperty 是 統一裝置屬性模型的一部分。
SetupAPI 僅支援 SetupDiSetDeviceProperty的 Unicode 版本。
SetupDiSetDeviceProperty的呼叫端必須是 Administrators 群組的成員,才能設定裝置實例屬性。
SetupDiSetDeviceProperty 會對 property-data-type 識別碼和屬性值強制執行需求。
若要取得為裝置設定之實例裝置屬性的裝置屬性索引鍵,請呼叫 SetupDiGetDevicePropertyKeys。
若要擷取裝置實例屬性,請呼叫 SetupDiGetDeviceProperty。
規格需求
最低支援的用戶端 | 適用于 Windows Vista 和更新版本的 Windows。 |
目標平台 | DesktopFor universal, call CM_Set_DevNode_Property |
標頭 | setupapi.h (包括 Setupapi.h) |
程式庫 | Setupapi.lib |