Condividi tramite


Apertura di un handle a un oggetto Registry-Key

Per aprire un handle a un oggetto chiave del Registro di sistema, eseguire il processo in due passaggi seguente:

  1. Creare una struttura OBJECT_ATTRIBUTES e inizializzarla chiamando InitializeObjectAttributes. Specificare il nome della chiave da modificare come parametro ObjectName in InitializeObjectAttributes.

    Se si passa NULL come parametro RootDirectory a InitializeObjectAttributes, ObjectName deve essere il percorso completo della chiave del Registro di sistema, a partire da \Registry. In caso contrario, RootDirectory deve essere un handle aperto per una chiave e ObjectName è il percorso relativo a tale chiave.

  2. Aprire un handle per l'oggetto chiave chiamando ZwCreateKey o ZwOpenKey e passare la struttura OBJECT_ATTRIBUTES . Se la chiave non esiste già, ZwCreateKey creerà la chiave, mentre ZwOpenKey restituirà STATUS_OBJECT_NAME_NOT_FOUND.

Si passa un parametro DesiredAccess a ZwCreateKey o ZwOpenKey che contiene i diritti di accesso richiesti. È necessario specificare i diritti di accesso che consentono le operazioni eseguite dal driver. Nella tabella seguente sono elencate le operazioni che è possibile eseguire e i diritti di accesso corrispondenti da richiedere.

Operazione Diritto di accesso richiesto

Ottenere un valore della chiave del Registro di sistema.

KEY_QUERY_VALUE o KEY_READ

Impostare un valore della chiave del Registro di sistema.

KEY_SET_VALUE o KEY_WRITE

Scorrere tutte le sottochiavi di una chiave.

KEY_ENUMERATE_SUB_KEYS o KEY_READ

Creare una sottochiave.

KEY_CREATE_SUB_KEY o KEY_WRITE

Eliminare una chiave.

DELETE

Per altre informazioni sui valori disponibili per il parametro DesiredAccess , vedere ZwCreateKey.

È anche possibile chiamare IoOpenDeviceRegistryKey e IoOpenDeviceInterfaceRegistryKey per aprire gli handle per le chiavi del Registro di sistema specifiche del dispositivo e specifiche dell'interfaccia del dispositivo. Per altre informazioni, vedere Routine del Registro di sistema Plug and Play.

Nota Per le chiamate a ZwCreateKey, ZwOpenKey, IoOpenDeviceRegistryKey e IoOpenDeviceInterfaceRegistryKey, i diritti di accesso generici, GENERIC_READ e GENERIC_WRITE, sono equivalenti ai diritti di accesso specifici della chiave, rispettivamente KEY_READ e KEY_WRITE e possono essere usati come sostituti di questi diritti di accesso specifici della chiave.