共用方式為


SetupDiGetCustomDevicePropertyA 函式 (setupapi.h)

SetupDiGetCustomDeviceProperty 函式會從登錄擷取指定的自定義裝置屬性。

語法

WINSETUPAPI BOOL SetupDiGetCustomDevicePropertyA(
  [in]            HDEVINFO         DeviceInfoSet,
  [in]            PSP_DEVINFO_DATA DeviceInfoData,
  [in]            PCSTR            CustomPropertyName,
  [in]            DWORD            Flags,
  [out, optional] PDWORD           PropertyRegDataType,
  [out]           PBYTE            PropertyBuffer,
  [in]            DWORD            PropertyBufferSize,
  [out, optional] PDWORD           RequiredSize
);

參數

[in] DeviceInfoSet

裝置資訊集的句柄,其中包含裝置信息專案,表示要擷取自定義裝置屬性的裝置。

[in] DeviceInfoData

SP_DEVINFO_DATA 結構的指標,指定 DeviceInfoSet 中的裝置信息專案。

[in] CustomPropertyName

代表自訂屬性的登錄值名稱。

[in] Flags

旗標值,指出應該如何傳回要求的資訊。 旗標可以是零或下列其中一項:

DICUSTOMDEVPROP_MERGE_MULTISZ

如果設定,函式會擷取裝置實例特定的屬性值和硬體標識元特定的屬性值,並串連為REG_MULTI_SZ型別字串串。 (For more information, see the Remarks section on this reference page.)

[out, optional] PropertyRegDataType

DWORD 類型的變數指標,可接收所擷取屬性的數據類型。 數據類型會指定為代表登錄數據類型的其中一個REG_前置常數。 這個參數是選擇性的,而且可以是 NULL

[out] PropertyBuffer

接收所要求屬性信息的緩衝區指標。

[in] PropertyBufferSize

PropertyBuffer 緩衝區的大小,以位元組為單位。

[out, optional] RequiredSize

DWORD 類型的變數指標,其接收接收要求資訊所需的緩衝區大小,以位元組為單位。 這個參數是選擇性的,而且可以是 NULL。 如果指定此參數, SetupDiGetCustomDeviceProperty 會傳回所需的大小,不論 PropertyBuffer 緩衝區是否夠大,都足以接收要求的資訊。

傳回值

如果作業成功, SetupDiGetCustomDeviceProperty 會 傳回 TRUE。 否則,函式會傳回 FALSE ,而且可以使用 呼叫 GetLastError 來擷取記錄的錯誤。 如果 PropertyBuffer 緩衝區不足以接收要求的資訊, SetupDiGetCustomDeviceProperty 會傳回 FALSE ,且 後續呼叫 GetLastError 會傳回ERROR_INSUFFICIENT_BUFFER。

備註

SetupDiGetCustomDeviceProperty 會擷取與單一裝置實例或所有符合特定硬體標識碼的裝置屬性。 (如需硬體標識碼的相關信息,請參閱 裝置標識碼) 。

廠商可以使用 INF DDInstall.HW 區段中INF AddReg 指示詞,並指定 HKR 登錄根目錄,來設定裝置實例的屬性。

只有系統可以設定硬體識別碼的屬性。 系統提供某些硬體識別碼的「圖示」屬性。

函式會先檢查指定的屬性是否存在指定的裝置實例。 如果是,則會傳回屬性的值。 如果沒有,函式會檢查屬性是否存在,以符合指定之裝置實例的硬體標識碼的所有裝置。 如果是,則會傳回屬性的值。 如果在 Flags 中設定DICUSTOMDEVPROP_MERGE_MULTISZ,函式會傳回與裝置實例和硬體標識符相關聯的屬性值,如果兩者都存在,

注意

setupapi.h 標頭會根據 UNICODE 預處理器常數的定義,將 SetupDiGetCustomDeviceProperty 定義為自動選取此函式的 ANSI 或 Unicode 版本。 混合使用編碼中性別名與非編碼中性的程序代碼,可能會導致編譯或運行時間錯誤不符。 如需詳細資訊,請參閱 函式原型的慣例

規格需求

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

另請參閱

SetupDiGetClassRegistryProperty

SetupDiGetDeviceRegistryProperty

SetupDiOpenDevRegKey

SetupDiSetClassRegistryProperty

SetupDiSetDeviceRegistryProperty