Função NtOpenFile (ntifs.h)
A rotina NtOpenFile abre um arquivo, diretório, dispositivo ou volume existente.
Sintaxe
__kernel_entry NTSYSCALLAPI NTSTATUS NtOpenFile(
[out] PHANDLE FileHandle,
[in] ACCESS_MASK DesiredAccess,
[in] POBJECT_ATTRIBUTES ObjectAttributes,
[out] PIO_STATUS_BLOCK IoStatusBlock,
[in] ULONG ShareAccess,
[in] ULONG OpenOptions
);
Parâmetros
[out] FileHandle
Ponteiro para uma variável HANDLE que recebe um identificador para o arquivo.
[in] DesiredAccess
Especifica um valor ACCESS_MASK que determina o acesso solicitado ao objeto . Para obter mais informações, consulte o parâmetro DesiredAccess de NtCreateFile.
[in] ObjectAttributes
Ponteiro para uma estrutura OBJECT_ATTRIBUTES que especifica o nome do objeto e outros atributos. Use InitializeObjectAttributes para inicializar essa estrutura. Se o chamador não estiver em execução em um contexto de thread do sistema, ele deverá definir o atributo OBJ_KERNEL_HANDLE quando chamar InitializeObjectAttributes.
[out] IoStatusBlock
Ponteiro para uma estrutura IO_STATUS_BLOCK que recebe a status de conclusão final e informações sobre a operação solicitada.
[in] ShareAccess
Especifica o tipo de acesso de compartilhamento para o arquivo. Para obter mais informações, consulte o parâmetro ShareAccess de NtCreateFile.
[in] OpenOptions
Especifica as opções a serem aplicadas ao abrir o arquivo. Para obter mais informações, consulte o parâmetro CreateOptions de NtCreateFile.
Retornar valor
NtOpenFile retorna STATUS_SUCCESS ou o código de erro NTSTATUS apropriado. No último caso, o chamador pode encontrar mais informações sobre a causa da falha verificando o parâmetro IoStatusBlock .
Comentários
NtOpenFile fornece um identificador que o chamador pode usar para manipular os dados de um arquivo ou o estado e os atributos do objeto de arquivo. NtOpenFile fornece um subconjunto da funcionalidade fornecida por NtCreateFile. Para obter mais informações, consulte Usando arquivos em um driver.
Depois que o identificador apontado por FileHandle não estiver mais em uso, o driver deverá chamar NtClose para fechá-lo.
Se o chamador não estiver em execução em um contexto de thread do sistema, ele deverá garantir que todos os identificadores que ele cria sejam identificadores privados. Caso contrário, o identificador pode ser acessado pelo processo em cujo contexto o driver está em execução. Para obter mais informações, consulte Identificadores de objeto.
Os chamadores de NtOpenFile devem estar em execução em IRQL = PASSIVE_LEVEL e com APCs de kernel especiais habilitadas.
Se a chamada para essa função ocorrer no modo de usuário, você deverá usar o nome "NtOpenFile" em vez de "ZwOpenFile".
Para chamadas de drivers de modo kernel, as versões NtXxx e ZwXxx de uma rotina do Windows Native System Services podem se comportar de forma diferente na maneira como lidam e interpretam parâmetros de entrada. Para obter mais informações sobre a relação entre as versões NtXxx e ZwXxx de uma rotina, consulte Using Nt and Zw Versions of the Native System Services Routines.
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Windows 2000 |
Plataforma de Destino | Universal |
Cabeçalho | ntifs.h (inclui Wdm.h, Ntddk.h, Ntifs.h) |
Biblioteca | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | PASSIVE_LEVEL (consulte a seção Comentários) |
Regras de conformidade da DDI | HwStorPortProhibitedDDIs, PowerIrpDDis |