Condividi tramite


Funzione IoGetDriverDirectory (wdm.h)

Restituisce un handle a una directory su disco da cui il driver può leggere e scrivere file. I file in tale directory si applicano a un oggetto driver specifico.

Sintassi

NTSTATUS IoGetDriverDirectory(
  [_In_]  PDRIVER_OBJECT        DriverObject,
  [_In_]  DRIVER_DIRECTORY_TYPE DirectoryType,
  [_In_]  ULONG                 Flags,
  [_Out_] PHANDLE               DriverDirectoryHandle
);

Parametri

[_In_] DriverObject

Puntatore all'oggetto driver (strutturaDRIVER_OBJECT) del driver chiamante.

[_In_] DirectoryType

Valore di tipo _DRIVER_DIRECTORY_TYPEche indica il tipo di directory richiesta.

[_In_] Flags

Deve essere 0.

[_Out_] DriverDirectoryHandle

Puntatore a una variabile che riceve un handle nella directory del driver richiesto. Il chiamante non deve passare NULL.

Valore restituito

Restituisce un valore NTSTATUS appropriato . I valori possibili includono:

Codice di errore Descrizione
STATUS_SUCCESS La chiamata ha aperto correttamente un handle alla directory del driver richiesto.
STATUS_INVALID_PARAMETER Un valore di input per questa funzione non è valido. Ad esempio, DriverObject o DriverDirectoryHandle è NULL; flag non è 0.

Osservazioni

Se viene chiamato IoGetDriverDirectory prima dell'avvio dei dischi e dei volumi necessari, la funzione non apre un handle e restituisce un errore.

I driver usano in genere ZwOpenFile e ZwCreateFile per accedere/creare file. Uno dei parametri per tali funzioni è una struttura OBJECT_ATTRIBUTES, che contiene il nome dell'oggetto e una directory radice. Se la directory radice è NULL, il nome dell'oggetto deve essere un percorso completo. Tuttavia, se si specifica un handle per la directory radice, il nome dell'oggetto deve essere relativo all'oggetto (nel caso di file, la directory), rappresentato dall'handle.

Dopo che la chiamata IoGetDriverDirectory ha esito positivo, usare l'handle ricevuto come directory radice nella OBJECT_ATTRIBUTES che si sta passando a un ZwOpenFile e ZwCreateFile.

Il driver deve chiamare ZwClose per chiudere l'handle ricevuto quando l'accesso non è più necessario.

I chiamanti di IoGetDriverDirectory devono essere in esecuzione in IRQL = PASSIVE_LEVEL nel contesto di un thread di sistema.

Fabbisogno

Requisito Valore
client minimo supportato Windows 10, versione 1803
intestazione wdm.h
libreria NtosKrnl.lib
dll NtosKrnl.exe
IRQL PASSIVE_LEVEL

Vedere anche

DRIVER_OBJECT

_DRIVER_DIRECTORY_TYPE

ZwOpenFile

ZwCreateFile

ZwClose

OBJECT_ATTRIBUTES

InitializeObjectAttributes