SetupDiGetDeviceRegistryPropertyA 函式 (setupapi.h)

SetupDiGetDeviceRegistryProperty 函式會擷取指定的隨插即用裝置屬性。

語法

WINSETUPAPI BOOL SetupDiGetDeviceRegistryPropertyA(
  [in]            HDEVINFO         DeviceInfoSet,
  [in]            PSP_DEVINFO_DATA DeviceInfoData,
  [in]            DWORD            Property,
  [out, optional] PDWORD           PropertyRegDataType,
  [out, optional] PBYTE            PropertyBuffer,
  [in]            DWORD            PropertyBufferSize,
  [out, optional] PDWORD           RequiredSize
);

參數

[in] DeviceInfoSet

裝置 資訊集 的控制碼,其中包含代表要擷取隨插即用屬性之裝置的裝置資訊專案。

[in] DeviceInfoData

指定DeviceInfoSet中裝置資訊元素之SP_DEVINFO_DATA結構的指標。

[in] Property

下列其中一個值,指定要擷取的屬性:

SPDRP_ADDRESS

函式會擷取裝置的位址。

SPDRP_BUSNUMBER

函式會擷取裝置的匯流排號碼。

SPDRP_BUSTYPEGUID

函式會擷取裝置匯流排類型的 GUID。

SPDRP_CAPABILITIES

函式會在 DWORD 中擷取下列CM_DEVCAP_Xxx 旗標的位 OR。 這些旗標所代表的裝置功能會對應至 DEVICE_CAPABILITIES 結構成員所代表的裝置功能。 CM_DEVCAP_Xxx常數定義于 Cfgmgr32.h 中。

CM_DEVCAP_Xxx旗標 對應的DEVICE_CAPABILITIES結構成員
CM_DEVCAP_LOCKSUPPORTED LockSupported
CM_DEVCAP_EJECTSUPPORTED 退出退出
CM_DEVCAP_REMOVABLE 移動
CM_DEVCAP_DOCKDEVICE DockDevice
CM_DEVCAP_UNIQUEID UniqueID
CM_DEVCAP_SILENTINSTALL SilentInstall
CM_DEVCAP_RAWDEVICEOK RawDeviceOK
CM_DEVCAP_SURPRISEREMOVALOK SurpriseRemovalOK
CM_DEVCAP_HARDWAREDISABLED HardwareDisabled
CM_DEVCAP_NONDYNAMIC NonDynamic
 

SPDRP_CHARACTERISTICS

函式會在 DWORD 中擷取裝置特性旗標的位 OR。 如需這些旗標的描述,這些旗標定義于Wdm.hNtddk.h中,請參閱IoCreateDevice函式的DeviceCharacteristics參數。

SPDRP_CLASS

函式會擷取包含 裝置之裝置安裝類別 的REG_SZ字串。

SPDRP_CLASSGUID

函式會擷取REG_SZ字串,其中包含代表裝置之裝置安裝類別的 GUID。

SPDRP_COMPATIBLEIDS

函式會擷取包含裝置相容識別碼清單的REG_MULTI_SZ字串。 如需相容識別碼的相關資訊,請參閱 裝置識別字串

SPDRP_CONFIGFLAGS

函式會在 DWORD 值中擷取裝置組態旗標的位 OR。 組態旗標是由Regstr.h中定義的 CONFIGFLAG_Xxx位元遮罩來表示。

SPDRP_DEVICE_POWER_DATA

(Windows XP 和更新版本) 函式會擷取包含裝置電源管理資訊的 CM_POWER_DATA 結構。

SPDRP_DEVICEDESC

函式會擷取包含裝置描述的REG_SZ字串。

SPDRP_DEVTYPE

函式會擷取代表裝置類型的 DWORD 值。 如需詳細資訊,請參閱 指定裝置類型

SPDRP_DRIVER

函式會擷取字串,以識別裝置 的軟體金鑰 (有時稱為 驅動程式金鑰) 。 如需驅動程式金鑰的詳細資訊,請參閱 裝置和驅動程式的登錄樹狀架構和金鑰

SPDRP_ENUMERATOR_NAME

函式會擷取包含裝置 列舉值名稱的REG_SZ字串。

SPDRP_EXCLUSIVE

函式會擷取 DWORD 值,指出使用者是否可以獨佔使用裝置。 如果允許獨佔使用,則傳回的值是一個,否則為零。 如需詳細資訊,請參閱 IoCreateDevice

SPDRP_FRIENDLYNAME

函式會擷取包含裝置易記名稱的REG_SZ字串。

SPDRP_HARDWAREID

函式會擷取包含裝置硬體識別碼清單的REG_MULTI_SZ字串。 如需硬體識別碼的相關資訊,請參閱 裝置識別字串

SPDRP_INSTALL_STATE

(Windows XP 和更新版本) 函式會擷取指出裝置安裝狀態的 DWORD 值。 安裝狀態是由Cfgmgr32.h中定義的其中一個 CM_INSTALL_STATE_Xxx值來表示。 CM_INSTALL_STATE_Xxx 值會對應至 DEVICE_INSTALL_STATE 列舉值。

SPDRP_LEGACYBUSTYPE

函式會將裝置的舊版匯流排類型擷取為 Wdm.hNtddk.h) 中所定義的INTERFACE_TYPE (值。

SPDRP_LOCATION_INFORMATION

函式會擷取包含裝置硬體位置的REG_SZ字串。

SPDRP_LOCATION_PATHS

(Windows Server 2003 和更新版本) 函式會擷取REG_MULTI_SZ字串,代表裝置樹狀結構中裝置的位置。

SPDRP_LOWERFILTERS

函式會擷取包含裝置較低篩選驅動程式名稱的REG_MULTI_SZ字串。

SPDRP_MFG

函式會擷取包含裝置製造商名稱的REG_SZ字串。

SPDRP_PHYSICAL_DEVICE_OBJECT_NAME

函式會擷取REG_SZ字串,其中包含與裝置 PDO 相關聯的名稱。 如需詳細資訊,請參閱 IoCreateDevice

SPDRP_REMOVAL_POLICY

(Windows XP 和更新版本) 函式會將裝置目前的移除原則擷取為 DWORD,其中包含Cfgmgr32.h中定義的其中一個 CM_REMOVAL_POLICY_Xxx值。

SPDRP_REMOVAL_POLICY_HW_DEFAULT

(Windows XP 和更新版本) 函式會將裝置的硬體指定預設移除原則擷取為 DWORD,其中包含Cfgmgr32.h中定義的其中一個 CM_REMOVAL_POLICY_Xxx值。

SPDRP_REMOVAL_POLICY_OVERRIDE

(Windows XP 和更新版本) 函式會從登錄) 擷取裝置的覆寫移除原則 (,作為包含Cfgmgr32.h中定義之其中一個 CM_REMOVAL_POLICY_Xxx值的 DWORD。

SPDRP_SECURITY

函式會擷取裝置 的SECURITY_DESCRIPTOR 結構。

SPDRP_SECURITY_SDS

函式會擷取包含裝置安全性描述元的REG_SZ字串。 如需安全性描述元字串的相關資訊,請參閱 安全性描述元定義語言 (Windows) 。 如需安全性描述元字串格式的資訊,請參閱安全性描述元定義語言 (Windows) 。

SPDRP_SERVICE

函式會擷取包含裝置服務名稱的REG_SZ字串。

SPDRP_UI_NUMBER

函式會擷取設定為裝置DEVICE_CAPABILITIES結構UINumber成員值的 DWORD 值。

SPDRP_UI_NUMBER_DESC_FORMAT

函式會擷取用來顯示 UINumber 值的格式字串 (REG_SZ) 。

SPDRP_UPPERFILTERS

函式會擷取包含裝置上層篩選驅動程式名稱的REG_MULTI_SZ字串。

[out, optional] PropertyRegDataType

接收所擷取之屬性之資料類型之變數的指標。 這是其中一種標準登錄資料類型。 此參數是選擇性的,可以是 Null

[out, optional] PropertyBuffer

接收所擷取之屬性之緩衝區的指標。 如果此參數設定為 Null而且 PropertyBufferSize 也設定為零,則函式會傳回 RequiredSize中緩衝區的必要大小。

[in] PropertyBufferSize

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

[out, optional] RequiredSize

DWORD 類型的變數指標,其會接收所要求屬性之資料所需的 PropertyBuffer 緩衝區大小,以位元組為單位。 此參數是選擇性的,可以是 Null

傳回值

如果呼叫成功,SetupDiGetDeviceRegistryProperty會傳回TRUE。 否則,它會傳回 FALSE ,而且可以藉由呼叫 GetLastError來擷取記錄的錯誤。 如果裝置的要求屬性不存在或屬性資料無效,SetupDiGetDeviceRegistryProperty會傳回ERROR_INVALID_DATA錯誤碼。

備註

注意

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

需求

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

另請參閱

IoGetDeviceProperty

SetupDiGetClassRegistryProperty

SetupDiSetClassRegistryProperty

SetupDiSetDeviceRegistryProperty