IRP_MJ_CREATE

Cada driver de modo kernel deve lidar com solicitações de IRP_MJ_CREATE em uma função de retorno de chamada DRIVER_DISPATCH.

Quando enviado

O sistema operacional envia uma solicitação IRP_MJ_CREATE para abrir um identificador para um objeto de arquivo ou objeto de dispositivo. Por exemplo, quando um driver chama ZwCreateFile, o sistema operacional envia uma solicitação IRP_MJ_CREATE para executar a operação de abertura real.

Parâmetros de Entrada

O membro Parameters.Create.SecurityContext aponta para uma estrutura IO_SECURITY_CONTEXT que descreve o contexto de segurança da solicitação. O membro Parameters.Create.SecurityContext-DesiredAccess> é uma máscara de acesso que especifica os direitos de acesso que estão sendo solicitados pelo chamador.

O membro Parameters.Create.Options é um valor ULONG que descreve as opções usadas ao abrir o identificador. Os 8 bits altos correspondem ao valor do parâmetro CreateDisposition de ZwCreateFile e os 24 bits baixos correspondem ao valor do parâmetro CreateOptions de ZwCreateFile.

O membro Parameters.Create.ShareAccess é um valor USHORT que descreve o tipo de acesso de compartilhamento. Esse valor corresponde ao valor do parâmetro ShareAccess de ZwCreateFile.

Os membros Parameters.Create.FileAttributes e Parameters.Create.EaLength são reservados para uso por sistemas de arquivos e drivers de filtro do sistema de arquivos. Para obter mais informações, consulte o tópico IRP_MJ_CREATE na documentação do IFS (Sistema de Arquivos Instalável).

Parâmetros de saída

Nenhum

Operação

A maioria dos drivers intermediários e de dispositivo define STATUS_SUCCESS no bloco de E/S status do IRP e conclui a solicitação de criação, mas os drivers podem, opcionalmente, usar sua função de retorno de chamada DRIVER_DISPATCH para reservar recursos para quaisquer solicitações de E/S subsequentes para esse identificador. Por exemplo, o driver serial do sistema mapeia seu código paginado e aloca todos os recursos necessários para lidar com solicitações de E/S subsequentes para o thread de modo de usuário que está tentando abrir o dispositivo para entrada e saída.

Requisitos

parâmetro

Wdm.h (inclua Wdm.h, Ntddk.h ou Ntifs.h)

Confira também

DRIVER_DISPATCH

DispatchCreateClose

IO_SECURITY_CONTEXT

ZwCreateFile