IRP_MJ_CREATE

Ogni driver in modalità kernel deve gestire IRP_MJ_CREATE richieste in una funzione di callback DRIVER_DISPATCH .

Data di invio

Il sistema operativo invia una richiesta di IRP_MJ_CREATE per aprire un handle a un oggetto file o a un oggetto dispositivo. Ad esempio, quando un driver chiama ZwCreateFile, il sistema operativo invia una richiesta di IRP_MJ_CREATE per eseguire l'operazione aperta effettiva.

Parametri di input

Il membro Parameters.Create.SecurityContext punta a una struttura IO_SECURITY_CONTEXT che descrive il contesto di sicurezza per la richiesta. Il membro Parameters.Create.SecurityContext-DesiredAccess> è una maschera di accesso che specifica i diritti di accesso richiesti dal chiamante.

Il membro Parameters.Create.Options è un valore ULONG che descrive le opzioni usate durante l'apertura dell'handle. I 8 bit elevati corrispondono al valore del parametro CreateDisposition di ZwCreateFile e i 24 bit bassi corrispondono al valore del parametro CreateOptions di ZwCreateFile.

Il membro Parameters.Create.ShareAccess è un valore USHORT che descrive il tipo di accesso alla condivisione. Questo valore corrisponde al valore del parametro ShareAccess di ZwCreateFile.

I membri Parameters.Create.FileAttributes e Parameters.Create.EaLength sono riservati per l'uso da file system e driver di filtro file system. Per altre informazioni, vedere l'argomento IRP_MJ_CREATE nella documentazione di Installable File System (IFS).

Parametri di output

Nessuno

Operazione

La maggior parte dei driver di dispositivo e intermedi imposta STATUS_SUCCESS nel blocco di stato I/O dell'IRP e completa la richiesta di creazione, ma i driver possono usare facoltativamente la funzione di callback DRIVER_DISPATCH per riservare le risorse per eventuali richieste di I/O successive per tale handle. Ad esempio, il driver seriale di sistema esegue il mapping del codice a pagina e alloca tutte le risorse necessarie per gestire le richieste di I/O successive per il thread in modalità utente che tenta di aprire il dispositivo per l'input e l'output.

Requisiti

Intestazione

Wdm.h (include Wdm.h, Ntddk.h o Ntifs.h)

Vedi anche

DRIVER_DISPATCH

DispatchCreateClose

IO_SECURITY_CONTEXT

ZwCreateFile