在 UMDF 1.x 驅動程式中使用登錄

警告

UMDF 2 是最新版的 UMDF,並取代 UMDF 1。 所有新的 UMDF 驅動程式都應該使用 UMDF 2 來撰寫。 未將新功能新增至 UMDF 1,而且較新版本的 Windows 10 上不支援 UMDF 1。 通用 Windows 驅動程式必須使用 UMDF 2。

封存的 UMDF 1 範例可在Windows 11 22H2 版 - 2022 年 5 月驅動程式範例更新中找到。

如需詳細資訊,請參閱使用 UMDF 消費者入門

UMDF 型驅動程式可以使用屬性存放區物件的介面,在登錄中讀取和寫入值。

UMDF 型驅動程式可以存取四種類型的登錄機碼。 驅動程式可以在這些索引鍵下建立、讀取和寫入子機碼和值。 UMDF 型驅動程式可以使用下列類型的登錄機碼:

  • 硬體金鑰

    PnP 管理員會為每個裝置建立硬體金鑰或 裝置金鑰,在其中儲存裝置的唯一識別資訊。

    您的驅動程式可以擷取和修改硬體機碼底下的一些屬性值。 預存值的位置取決於您用來存取這些值的方法。

    使用 PropertyStore 方法建立的屬性值會儲存在硬體金鑰下的 \Device Parameters 子機碼中。 若要存取這些屬性,您的驅動程式會呼叫下列其中一種方法來取得屬性存放區介面。

    IWDFDevice::RetrieveDevicePropertyStore
    取得 IWDFNamedPropertyStore 介面的指標。

    IWDFDeviceInitialize::RetrieveDevicePropertyStore
    取得 IWDFNamedPropertyStore 介面的指標。

    IWDFPropertyStoreFactory::RetrieveDevicePropertyStore
    取得 IWDFNamedPropertyStore2 介面的指標。 您可以使用 SubkeyPath 參數,在驅動程式建立的子機碼下指定值,例如 \Device Parameters\DriverServiceName\subkey

    驅動程式具有\Device Parameters子機碼內值的唯讀存取權,而且無法存取\Device Parameters\WDF 或 \Device Parameters\WUDF

    使用整合裝置屬性模型建立的屬性值會儲存在硬體金鑰下的 \Properties 子機碼中。

    若要存取這些屬性,您的驅動程式會呼叫 IWDFUnifiedPropertyStoreFactory::RetrieveUnifiedDevicePropertyStore 以取得屬性存放區介面。 然後,驅動程式可以使用 IWDFUnifiedPropertyStore 介面來修改和擷取裝置屬性的目前設定。

  • 軟體金鑰

    驅動程式的軟體金鑰也稱為其 驅動程式金鑰 ,因為登錄包含每個驅動程式的軟體金鑰。 登錄包含所有裝置類別的清單,而每個驅動程式的軟體金鑰都位於其裝置類別專案之下。 系統會在其軟體金鑰下儲存每個驅動程式的相關資訊。

    您的驅動程式可以呼叫 IWDFPropertyStoreFactory::RetrieveDevicePropertyStore ,以在其軟體金鑰下取得值的讀取或寫入存取權。 驅動程式可以讀取和寫入與特定裝置無關的驅動程式特定資訊。

  • 裝置介面金鑰

    登錄包含驅動程式所建立之所有 裝置介面類別別 的機碼。 在這些金鑰下,是驅動程式已註冊之裝置介面類別別之每個實例的專案。

    如果您的驅動程式已註冊裝置介面類別別的實例,它可以藉由呼叫 IWDFPropertyStoreFactory::RetrieveDevicePropertyStore,在該實例的登錄專案下讀取和寫入值。 驅動程式可以讀取和寫入裝置介面的實例特定資訊。

  • DEVICEMAP金鑰

    登錄包含 一個HKEY_LOCAL_MACHINE\HARDWARE\DEVICEMAP 機碼,適用于舊版技術的一些驅動程式,例如序列和平行埠。 如果您的驅動程式支援使用 DEVICEMAP 金鑰的技術,驅動程式可以藉由呼叫 IWDFPropertyStoreFactory::RetrieveDevicePropertyStore來存取金鑰下的子機碼和值。

在驅動程式呼叫其中一個RetrieveDevicePropertyStore方法以開啟登錄子機碼之後,驅動程式可以使用IWDFNamedPropertyStore、IWDFNamedPropertyStore2IWDFUnifiedPropertyStore所公開的方法,在子機碼下建立、讀取和寫入值。 IWDFNamedPropertyStore2介面也可讓驅動程式刪除值。

如需驅動程式登錄機碼的詳細資訊,請參閱 登錄樹狀架構和機碼概觀