SetupDiGetDeviceInterfacePropertyKeys 函式 (setupapi.h)

SetupDiGetDeviceInterfacePropertyKeys 函式會擷取代表裝置介面所設定之裝置屬性的裝置屬性數位。

語法

WINSETUPAPI BOOL SetupDiGetDeviceInterfacePropertyKeys(
  [in]            HDEVINFO                  DeviceInfoSet,
  [in]            PSP_DEVICE_INTERFACE_DATA DeviceInterfaceData,
  [out, optional] DEVPROPKEY                *PropertyKeyArray,
  [in]            DWORD                     PropertyKeyCount,
  [out, optional] PDWORD                    RequiredPropertyKeyCount,
  [in]            DWORD                     Flags
);

參數

[in] DeviceInfoSet

裝置資訊集的句柄。 此裝置資訊集包含用來擷取裝置屬性索引鍵陣列的裝置介面,代表為裝置介面設定的裝置屬性。

[in] DeviceInterfaceData

SP_DEVICE_INTERFACE_DATA 結構的指標,表示要擷取所要求裝置屬性索引鍵陣列的裝置介面。

[out, optional] PropertyKeyArray

緩衝區的指標,可接收 DEVPROPKEY 類型的值陣列,其中每個值都是針對裝置介面所設定之裝置屬性的裝置屬性索引鍵。 指標是選擇性的,可以是 NULL。 如需詳細資訊,請參閱本主題稍後的一節。

[in] PropertyKeyCount

PropertyKeyArray 緩衝區的 DEVPROPKEY 類型元素大小如果 PropertyKeyArrayNULL,PropertyKeyCount 必須設定為零。

[out, optional] RequiredPropertyKeyCount

接收要求之裝置屬性索引鍵數目的 DWORD 型別變數指標。 指標是選擇性的,可以設定為 NULL

[in] Flags

此參數必須設定為零。

傳回值

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

下表包含此函式可能會記錄的一些較常見的錯誤碼。

傳回碼 Description
ERROR_INVALID_FLAGS
Flags 的值不是零。
ERROR_INVALID_HANDLE
DevInfoSet 指定的裝置資訊集無效。
ERROR_INVALID_DATA
內部數據值無效。
ERROR_INVALID_PARAMETER
參數無效。 其中一個可能性是 DevInterfaceData 指定的裝置介面無效。
ERROR_INVALID_USER_BUFFER
用戶緩衝區無效。 其中一個可能性是 PropertyKeyArrayNULL而 PropertKeyCount 不是零。 .
ERROR_NO_SUCH_DEVICE_INTERFACE
DeviceInterfaceData 指定的裝置介面不存在。
ERROR_INSUFFICIENT_BUFFER
PropertyKeyArray 緩衝區不夠大,無法保存所有要求的屬性索引鍵。
ERROR_NOT_ENOUGH_MEMORY
沒有足夠的系統記憶體可用來完成作業。

備註

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

如果 PropertyKeyArray 緩衝區不夠大,無法保存所有要求的屬性索引鍵, 則 SetupDiGetDeviceInterfacePropertyKeys 不會擷取任何屬性索引鍵並傳回ERROR_INSUFFICIENT_BUFFER。 如果呼叫端提供 RequiredPropertyKeyCount 指標, SetupDiGetDeviceInterfacePropertyKeys 會將 *RequiredPropertyKeyCount 的值設定為 PropertyKeyArray 緩衝區所需的大小

若要擷取裝置介面屬性,請呼叫 SetupDiGetDeviceInterfaceProperty 並設定裝置介面屬性,呼叫 SetupDiSetDeviceInterfaceProperty

規格需求

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

另請參閱

SetupDiGetDeviceInterfaceProperty

SetupDiSetDeviceInterfaceProperty