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

警告

[UMDF 2] 是最新版本的 UMDF,並取代了 [UMDF 1]。 所有新的 UMDF 驅動程式都應該使用 UMDF 2 來撰寫。 沒有新功能新增至 UMDF 1,在較新版本的 Windows 10 上,對 UMDF 1 的支援有限。 通用 Windows 驅動程式必須使用 UMDF 2。

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

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

以 UMDF 為基礎的驅動程式可以存取四種類型的登錄機碼。 驅動程式可以建立、讀取及寫入這些機碼下的子機碼和值。 下列類型的登錄機碼適用于以 UMDF 為基礎的驅動程式:

  • 硬體金鑰

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

    您的驅動程式可以取出和修改硬體金鑰下的某些屬性值。 儲存值的位置取決於您用來存取這些值的方法。

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

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

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

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

    驅動程式具有 \Device 參數 子機碼中之值的唯讀存取權,且無法存取 \Device Parameters\WDF\Device Parameters\WUDF

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

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

  • 軟體金鑰

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

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

  • 裝置介面金鑰

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

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

  • DEVICEMAP

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

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

如需驅動程式的登錄機碼的詳細資訊,請參閱登錄 樹狀結構和金鑰的總覽