WdfDriverOpenParametersRegistryKey 函式 (wdfdriver.h)

[適用於 KMDF 和 UMDF]

WdfDriverOpenParametersRegistryKey 方法會開啟驅動程式的參數登錄機碼,並擷取代表機碼之架構登錄機碼物件的句柄。

語法

NTSTATUS WdfDriverOpenParametersRegistryKey(
  [in]           WDFDRIVER              Driver,
  [in]           ACCESS_MASK            DesiredAccess,
  [in, optional] PWDF_OBJECT_ATTRIBUTES KeyAttributes,
  [out]          WDFKEY                 *Key
);

參數

[in] Driver

驅動程式架構驅動程序物件的句柄,該驅動程式是從先前呼叫 WdfDriverCreateWdfGetDriver 取得的。

[in] DesiredAccess

ACCESS_MASK型別值,指定Parameters登錄機碼的存取遮罩。

KMDF 驅動程式通常會要求 KEY_READKEY_WRITEKEY_READ |KEY_WRITE

如果您要撰寫 UMDF 驅動程式,請使用 KEY_READKEY_READ |KEY_SET_VALUE

最佳做法是只要求驅動程式所需的存取類型。

[in, optional] KeyAttributes

呼叫端配置的 WDF_OBJECT_ATTRIBUTES 結構的指標,指定架構登錄機碼對象的物件屬性。 此參數是選擇性的,而且可以WDF_NO_OBJECT_ATTRIBUTES。

[out] Key

接收架構登錄機碼物件句柄的位置指標。

傳回值

WdfDriverOpenParametersRegistryKey 會在作業成功時傳回STATUS_SUCCESS。 其他傳回值包括:

傳回碼 Description
STATUS_ACCESS_DENIED
UMDF 驅動程式在 DesiredAccess 參數中指定了下列其中一個旗標:
  • GENERIC_WRITE
  • KEY_CREATE_SUBKEY
  • WRITE_DAC

由於上述值對 UMDF 驅動程式無效,因此GENERIC_ALL和STANDARD_RIGHTS_ALL等通用旗標也會讓 WdfDriverOpenParametersRegistryKey 失敗,並出現此傳回值。

 

如需傳回值的詳細資訊,請參閱 Framework 物件建立錯誤

這個方法也可能傳回其他 NTSTATUS值

如果 KMDF 驅動程式在 驅動程式中指定無效的句柄,就會發生系統錯誤檢查。

備註

驅動程式 的參數機 碼位於 登錄的服務樹 狀結構中。 如果 驅動程序的參數索引 鍵不存在, WdfDriverOpenParametersRegistryKey 方法會建立它。

當驅動程式使用 Parameters 登錄機碼完成時,驅動程式必須呼叫 WdfRegistryClose

注意

UMDF 不支援建立子機碼。

如需登錄的詳細資訊,請參閱 在 Framework-Based Drivers 中使用登錄

範例

下列程式代碼範例會開啟 驅動程式的參數登錄 機碼,並取得代表機碼之架構登錄機碼物件的句柄。

WDFKEY hKey;

status = WdfDriverOpenParametersRegistryKey(
                                            Driver,
                                            STANDARD_RIGHTS_ALL,
                                            WDF_NO_OBJECT_ATTRIBUTES,
                                            &hKey
                                            );

規格需求

需求
目標平台 Universal
最小 KMDF 版本 1.0
最低UMDF版本 2.0
標頭 wdfdriver.h (包含 Wdf.h)
程式庫 Wdf01000.sys (KMDF) ;WUDFx02000.dll (UMDF)
IRQL PASSIVE_LEVEL
DDI 合規性規則 DriverCreate (kmdf) KmdfIrql (kmdf) KmdfIrql2 (kmdf) 、 KmdfIrqlExplicit (kmdf)

另請參閱

ACCESS_MASK

WDF_OBJECT_ATTRIBUTES

WdfDriverCreate

WdfDriverGetRegistryPath

WdfGetDriver

WdfRegistryClose