Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
[Si applica a KMDF e UMDF]
Il metodo WdfRegistryOpenKey apre una chiave del Registro di sistema specificata e crea un oggetto chiave del Registro di sistema del framework che rappresenta la chiave del Registro di sistema.
Sintassi
NTSTATUS WdfRegistryOpenKey(
[in, optional] WDFKEY ParentKey,
[in] PCUNICODE_STRING KeyName,
[in] ACCESS_MASK DesiredAccess,
[in, optional] PWDF_OBJECT_ATTRIBUTES KeyAttributes,
[out] WDFKEY *Key
);
Parametri
[in, optional] ParentKey
Handle per un oggetto chiave del Registro di sistema del framework. Questo oggetto rappresenta una chiave del Registro di sistema padre aperta dal driver. Questo parametro è facoltativo e può essere NULL. Se il parametro non è NULL, la chiave KeyName deve risiedere nella chiave padre nel Registro di sistema. Per altre informazioni su questa chiave padre, vedere la sezione Osservazioni.
[in] KeyName
Puntatore a una struttura UNICODE_STRING che contiene il nome della chiave da aprire. Il nome della chiave può includere informazioni sul percorso. Se ParentKey è NULL, KeyName deve specificare un percorso completo di una chiave del Registro di sistema. Per esempi, vedere la sezione Osservazioni.
[in] DesiredAccess
Valore ACCESS_MASKtipizzato che specifica i diritti di accesso richiesti dal driver per la chiave del Registro di sistema specificata. Per un elenco dei diritti di accesso usati in genere dai driver per le chiavi del Registro di sistema, vedere Apertura di un handle a un oggetto Registry-Key. Il driver deve richiedere solo i tipi di accesso necessari. Ad esempio, il driver non deve richiedere KEY_ALL_ACCESS se leggerà solo la chiave del Registro di sistema.
[in, optional] KeyAttributes
Puntatore a una struttura WDF_OBJECT_ATTRIBUTES che contiene gli attributi forniti dal driver per il nuovo oggetto chiave del Registro di sistema. Questo parametro è facoltativo e può essere WDF_NO_OBJECT_ATTRIBUTES.
[out] Key
Puntatore a una posizione che riceve un handle per il nuovo oggetto chiave del Registro di sistema.
Valore restituito
WdfRegistryOpenKey restituisce STATUS_SUCCESS se l'operazione ha esito positivo. In caso contrario, il metodo potrebbe restituire uno dei valori seguenti:
Per un elenco di altri valori restituiti che potrebbero essere restituiti dal metodo WdfRegistryOpenKey, vedere Framework Object Creation Errors.
Questo metodo potrebbe anche restituire altri valori NTSTATUS .
Osservazioni:
Per ottenere un handle per un oggetto chiave del Registro di sistema che rappresenta una chiave padre, il driver può chiamare WdfDriverOpenParametersRegistryKey, WdfDeviceOpenRegistryKeyo WdfFdoInitOpenRegistryKey.
Il formato stringa specificato nel parametro KeyName dipende dal fatto che il chiamante sia un driver KMDF o un driver UMDF. Ad esempio, per aprire il percorso seguente:
HKLM\System\CurrentControlSet\Control
Il driver potrebbe usare questa logica condizionale:
#ifdef _KERNEL_MODE
#define CONTROL_KEY_FULL_PATH L"\\Registry\\Machine\\System\\CurrentControlSet\\Control "
#else
#define CONTROL_KEY_FULL_PATH L"System\\CurrentControlSet\\Control\\"
#endif
Al termine dell'uso di una chiave del Registro di sistema aperta con WdfRegistryOpenKey, il driver deve chiamare WdfRegistryClose.
Per altre informazioni sugli oggetti chiave del Registro di sistema, vedere Using the Registry in Framework-Based Drivers.
Esempi
Nell'esempio di codice seguente viene aperta la chiave software di un driver e quindi viene aperta la chiave del Registro di sistema MySubKey, che si trova sotto la chiave software del driver.
WDFKEY hKey, subkey;
NTSTATUS status;
UNICODE_STRING myKeyStr;
status = WdfDeviceOpenRegistryKey(
device,
PLUGPLAY_REGKEY_DRIVER,
KEY_READ,
WDF_NO_OBJECT_ATTRIBUTES,
&hKey
);
if (NT_SUCCESS(status)){
RtlInitUnicodeString(
&myKeyStr,
L"MySubKey"
);
status = WdfRegistryOpenKey(
hKey,
&myKeyStr,
KEY_READ,
WDF_NO_OBJECT_ATTRIBUTES,
&subkey
);
}
Requisiti
| Requisito | Valore |
|---|---|
| Piattaforma di destinazione | Universale |
| versione minima di KMDF | 1.0 |
| versione minima di UMDF | 2.0 |
| intestazione | wdfregistry.h (include Wdf.h) |
| Biblioteca | Wdf01000.sys (KMDF); WUDFx02000.dll (UMDF) |
| IRQL | PASSIVE_LEVEL |
| regole di conformità DDI | DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf) |