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.h和Ntddk.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.h 和 Ntddk.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 |
另請參閱
SetupDiGetClassRegistryProperty