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
用戶緩衝區無效。 其中一個可能性是 PropertyBuffer 是 NULL, 而 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