WDF_PROPERTY_STORE_ROOT 結構 (wudfddi_types.h)
[警告: UMDF 2 是最新版的 UMDF,並取代 UMDF 1。 所有新的 UMDF 驅動程式都應該使用 UMDF 2 來撰寫。 未將新功能新增至 UMDF 1,且較新版本的 Windows 10 上不支援 UMDF 1。 通用 Windows 驅動程式必須使用 UMDF 2。 如需詳細資訊,請參閱使用 UMDF 使用者入門。]
WDF_PROPERTY_STORE_ROOT 結構包含可識別UMDF屬性存放區的資訊。
語法
typedef struct _WDF_PROPERTY_STORE_ROOT {
ULONG LengthCb;
WDF_PROPERTY_STORE_ROOT_CLASS RootClass;
union {
struct {
PCWSTR ServiceName;
} HardwareKey;
struct {
LPCGUID InterfaceGUID;
PCWSTR ReferenceString;
} DeviceInterfaceKey;
struct {
PCWSTR LegacyMapName;
} LegacyHardwareKey;
} Qualifier;
} WDF_PROPERTY_STORE_ROOT, *PWDF_PROPERTY_STORE_ROOT;
成員
LengthCb
這個結構的長度,以位元組為單位。
RootClass
識別屬性存放區的 WDF_PROPERTY_STORE_ROOT_CLASS型別值。
Qualifier
Qualifier.HardwareKey
Qualifier.HardwareKey.ServiceName
NULL 終止字元字串的指標,可識別登錄中裝置硬體機碼底下的驅動程式特定子機碼。 如需此成員的詳細資訊,請參閱下列一節。
Qualifier.DeviceInterfaceKey
Qualifier.DeviceInterfaceKey.InterfaceGUID
識別裝置介面之 GUID 的指標。 驅動程式先前必須呼叫 IWDFDevice::CreateDeviceInterface ,才能註冊裝置介面。
Qualifier.DeviceInterfaceKey.ReferenceString
識別裝置介面參考字串之 NULL終止字元字串的指標。 如果驅動程式在呼叫 IWDFDevice::CreateDeviceInterface 時指定參考字串,則必須指定這個成員。 否則,這個成員必須是 NULL。
Qualifier.LegacyHardwareKey
Qualifier.LegacyHardwareKey.LegacyMapName
NULL 終止字元字串的指標,可識別登錄中 HKEY_LOCAL_MACHINE\HARDWARE\DEVICEMAP 機碼底下的子機碼。 只有少數較舊的驅動程式會使用此金鑰。
備註
WDF_PROPERTY_STORE_ROOT 結構可用來做為 IWDFPropertyStoreFactory::RetrieveDevicePropertyStore 和 IWDFUnifiedPropertyStoreFactory::RetrieveUnifiedDevicePropertyStore 的輸入。
UMDF 屬性存放區代表驅動程式可以存取的登錄機碼。 在驅動程式呼叫上述其中一種方法之前,它必須先初始化 WDF_PROPERTY_STORE_ROOT 結構。 驅動程式必須零 結構,然後將 LengthCb 成員設定為結構的長度。
若要開啟 軟體金鑰,您的驅動程式必須:
- 將結構的 LengthCb 成員設定為結構大小。
- 將結構的 RootClass 成員設定為 WdfPropertyStoreRootClassSoftwareKey。
- 將結構的 LengthCb 成員設定為結構大小。
- 將結構的 RootClass 成員設定為 WdfPropertyStoreRootClassHardwareKey。
-
設定 Qualifier.HardwareKey.ServiceName 成員的值。 此值必須是下列其中一項:
- WDF_PROPERTY_STORE_HARDWARE_KEY_ROOT,在裝置的硬體密鑰下開啟 \Device Parameters 子機碼。 驅動程式只能取得此子機碼的讀取許可權。
- WDF_PROPERTY_STORE_HARDWARE_KEY_DEFAULT,在 \Device Parameters 子機碼下開啟符合驅動程式服務名稱的子機碼。 驅動程式可以取得此子機碼的讀取或寫入許可權。 如果子機碼不存在,驅動程式可以選擇性地建立子機碼。
- 驅動程式提供的字元字串,以在 \Device Parameters 子機碼下,以符合字元字串的名稱開啟子機碼。 驅動程式可以取得此子機碼的讀取或寫入許可權。 如果子機碼不存在,驅動程式可以選擇性地建立子機碼。
如果您的驅動程式在裝置的硬體密鑰下建立子機碼,最好指定 WDF_PROPERTY_STORE_HARDWARE_KEY_DEFAULT ,因為 UMDF 會建立符合驅動程式服務名稱的子機碼。 使用此名稱可確保每個驅動程式都會建立唯一命名的子機碼。 驅動程式不得將 WDF 或 WUDF 指定為子機碼名稱。
- 將結構的 LengthCb 成員設定為結構大小。
- 將結構的 RootClass 成員設定為 WdfPropertyStoreRootClassDeviceInterfaceKey。
- 將 Qualifier.DeviceInterfaceKey.InterfaceGUID 成員設定為驅動程式指定給先前呼叫 IWDFDevice::CreateDeviceInterface 的 GUID。
- 將 Qualifier.DeviceInterfaceKey.ReferenceString 成員設定為驅動程式先前呼叫 IWDFDevice::CreateDeviceInterface 的參考字元串,如果驅動程式未指定參考字符串,則為 NULL 。
若要開啟 DEVICEMAP 金鑰,您的驅動程式必須:
- 將結構的 LengthCb 成員設定為結構大小。
- 將結構的 RootClass 成員設定為 WdfPropertyStoreRootClassLegacyHardwareKey。
- 將 Qualifier.LegacyHardwareKey.LegacyMapName 成員設定為字元字串,指定登錄中 HKEY_LOCAL_MACHINE\HARDWARE\DEVICEMAP 機碼底下的子機碼。
如需這些登錄機碼的詳細資訊,請參閱 在 UMDF 型驅動程式中使用登錄。
規格需求
需求 | 值 |
---|---|
最低UMDF版本 | 1.9 |
標頭 | wudfddi_types.h (包括 Wudfddi.h) |
另請參閱
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應