Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Retorna um identificador para um diretório no disco do qual o driver pode ler e gravar arquivos. Os arquivos nesse diretório se aplicam a um objeto de driver específico.
Sintaxe
NTSTATUS IoGetDriverDirectory(
[_In_] PDRIVER_OBJECT DriverObject,
[_In_] DRIVER_DIRECTORY_TYPE DirectoryType,
[_In_] ULONG Flags,
[_Out_] PHANDLE DriverDirectoryHandle
);
Parâmetros
[_In_] DriverObject
Um ponteiro para o objeto driver (DRIVER_OBJECT estrutura) do driver de chamada.
[_In_] DirectoryType
Um valor de tipo _DRIVER_DIRECTORY_TYPEque indica o tipo de diretório solicitado.
[_In_] Flags
Deve ser 0.
[_Out_] DriverDirectoryHandle
Um ponteiro para uma variável que recebe um HANDLE para o diretório de driver solicitado. O chamador não deve passar NULL.
Valor de retorno
Retorna um valor NTSTATUS apropriado. Os valores possíveis incluem:
| Código de erro | Descrição |
|---|---|
| STATUS_SUCCESS | A chamada abriu com êxito um identificador para o diretório de driver solicitado. |
| STATUS_INVALID_PARAMETER | Um valor de entrada para essa função é inválido. Por exemplo, driverObject ou DriverDirectoryHandle é NULL; Flags não é 0. |
Observações
Se IoGetDriverDirectory for chamado antes que os discos e volumes necessários sejam iniciados, a função não abrirá um identificador e retornará um erro.
Normalmente, os drivers usam ZwOpenFile e ZwCreateFile para acessar/criar arquivos. Um dos parâmetros para essas funções é uma estrutura OBJECT_ATTRIBUTES, que contém o nome do objeto e um diretório raiz. Se o diretório raiz for NULL, o nome do objeto deverá ser um caminho totalmente qualificado. No entanto, se você fornecer um identificador para o diretório raiz, o nome do objeto deverá ser relativo ao objeto (no caso de arquivos, o diretório), que o identificador representa.
Depois que a chamada IoGetDriverDirectory for bem-sucedida, use o HANDLE recebido como um diretório raiz no OBJECT_ATTRIBUTES que você está passando para umZwOpenFilee ZwCreateFile.
O driver deve chamar ZwClose para fechar o identificador recebido quando o acesso não for mais necessário.
Os chamadores de IoGetDriverDirectory devem estar em execução em IRQL = PASSIVE_LEVEL no contexto de um thread do sistema.
Requisitos
| Requisito | Valor |
|---|---|
| de cliente com suporte mínimo | Windows 10, versão 1803 |
| cabeçalho | wdm.h |
| biblioteca | NtosKrnl.lib |
| de DLL | NtosKrnl.exe |
| IRQL | PASSIVE_LEVEL |