SetupDiGetDeviceInterfacePropertyW 函式 (setupapi.h)

SetupDiGetDeviceInterfaceProperty 函式會擷取為裝置介面設定的裝置屬性。

語法

WINSETUPAPI BOOL SetupDiGetDeviceInterfacePropertyW(
  [in]            HDEVINFO                  DeviceInfoSet,
  [in]            PSP_DEVICE_INTERFACE_DATA DeviceInterfaceData,
  [in]            const DEVPROPKEY          *PropertyKey,
  [out]           DEVPROPTYPE               *PropertyType,
  [out]           PBYTE                     PropertyBuffer,
  [in]            DWORD                     PropertyBufferSize,
  [out, optional] PDWORD                    RequiredSize,
  [in]            DWORD                     Flags
);

參數

[in] DeviceInfoSet

裝置 資訊集 的句柄,其中包含要擷取裝置介面屬性的裝置介面。

[in] DeviceInterfaceData

SP_DEVICE_INTERFACE_DATA 結構的指標,表示要擷取裝置介面屬性的裝置介面。

[in] PropertyKey

DEVPROPKEY 結構的指標,表示要擷取之裝置介面屬性的裝置介面屬性索引鍵。

[out] PropertyType

DEVPROPTYPE 型別變數的指標,可接收所要求裝置介面屬性的 property-data-type 標識符。 property-data-type 標識符是基底數據類型標識符之間的位 OR,如果修改基底數據類型,則為 property-data-type 修飾詞。

[out] PropertyBuffer

接收要求之裝置介面屬性之緩衝區的指標。 SetupDiGetDeviceInterfaceProperty 只有在緩衝區夠大而足以保存所有屬性值數據時,才會擷取要求的屬性。 指標可以是 NULL。 如果指標設定為 NULL 且提供 RequiredSize則 SetupDiGetDeviceInterfaceProperty 會以位元組為單位傳回屬性的大小,以位元組為單位。* RequiredSize

[in] PropertyBufferSize

PropertyBuffer 緩衝區的大小,以位元組為單位。 如果 PropertyBuffer 設定為 NULL,PropertyBufferSize 必須設定為零。

[out, optional] RequiredSize

如果擷取屬性或所需的緩衝區大小不足,則為 DWORD 類型的變數指標,可接收裝置介面屬性的大小,以位元組為單位。 此指標可以設定為 NULL

[in] Flags

此參數必須設定為零。

傳回值

SetupDiGetDeviceInterfaceProperty 如果成功,則會傳回 TRUE 。 否則,它會傳回 FALSE,而且可以藉由呼叫 GetLastError 來擷取記錄的錯誤。

下表包含此函式可能會記錄的一些較常見的錯誤碼。 其他錯誤碼可由此 API 所呼叫的裝置安裝程式函式設定。

傳回碼 Description
ERROR_INVALID_FLAGS
Flags 的值不是零。
ERROR_INVALID_HANDLE
DevInfoSet 指定的裝置資訊集無效。
ERROR_INVALID_PARAMETER
提供的 參數無效。 其中一個可能性是 DeviceInterfaceData 指定的裝置介面無效。
ERROR_INVALID_REG_PROPERTY
PropertyKey 所提供的屬性索引鍵無效。
ERROR_INVALID_DATA
未指定的內部數據值無效。
ERROR_INVALID_USER_BUFFER
用戶緩衝區無效。 其中一個可能性是 PropertyBufferNULL而 PropertyBufferSize 不是零。
ERROR_NO_SUCH_DEVICE_INTERFACE
DeviceInterfaceData 指定的裝置介面不存在。
ERROR_INSUFFICIENT_BUFFER
PropertyBuffer 緩衝區不夠大,無法保存屬性值,或傳遞至系統呼叫的內部數據緩衝區太小。
ERROR_NOT_ENOUGH_MEMORY
沒有足夠的系統記憶體可用來完成作業。
ERROR_NOT_FOUND
要求的裝置屬性不存在。
ERROR_ACCESS_DENIED
呼叫端沒有系統管理員許可權。

備註

SetupDiGetDeviceInterfaceProperty統一裝置屬性模型的一部分。

SetupAPI 僅支援 Unicode 版本的 SetupDiGetDeviceInterfaceProperty

SetupDiGetDeviceInterfaceProperty 的呼叫端必須是 Administrators 群組的成員,才能設定裝置介面屬性。

若要取得代表裝置介面所設定裝置屬性的裝置屬性,請呼叫 SetupDiGetDeviceInterfacePropertyKeys

若要設定裝置介面屬性,請呼叫 SetupDiSetDeviceInterfaceProperty

規格需求

需求
最低支援的用戶端 可在 Windows Vista 和更新版本的 Windows 中使用。
目標平台 DesktopFor universal, call CM_Get_Device_Interface_Property
標頭 setupapi.h (包括 Setupapi.h)
程式庫 Setupapi.lib

另請參閱

SetupDiGetDeviceInterfacePropertyKeys

SetupDiSetDeviceInterfaceProperty