Função FsRtlKernelFsControlFile (ntifs.h)
A função FsRtlKernelFsControlFile cria um IRP FSCTL_XXX explícito, envia-o para baixo na pilha, espera síncronamente para que ele seja concluído e retorna o resultado. Essa função permite que o chamador conclua essa ação por FileObject em vez de manipular.
Sintaxe
NTSTATUS FsRtlKernelFsControlFile(
[in] PFILE_OBJECT FileObject,
[in] ULONG FsControlCode,
[in] PVOID InputBuffer,
[in] ULONG InputBufferLength,
[out] PVOID OutputBuffer,
[out] ULONG OutputBufferLength,
[out] PULONG RetOutputBufferSize
);
Parâmetros
[in] FileObject
Ponteiro para o FILE_OBJECT para enviar a operação.
[in] FsControlCode
FSCTL_XXX código que indica qual operação de controle do sistema de arquivos deve ser executada. O valor desse parâmetro determina os formatos e os comprimentos necessários de InputBuffer e OutputBuffer, bem como quais dos pares de parâmetros a seguir são necessários. Para obter informações detalhadas sobre os códigos de FSCTL_XXX definidos pelo sistema, consulte a seção "Comentários" da entrada de referência para DeviceIoControl na documentação do SDK do Microsoft Windows.
[in] InputBuffer
Ponteiro para um buffer de entrada alocado pelo chamador que contém informações específicas do dispositivo a serem fornecidas ao driver de destino. Se FsControlCode especificar uma operação que não exige dados de entrada, esse ponteiro será opcional e poderá ser NULL. Observe que esse buffer pode ser modificado após o retorno e o chamador deve se adaptar a isso. Isso ocorre porque esse buffer pode ser usado para armazenar os dados de saída.
[in] InputBufferLength
Comprimento do InputBuffer em bytes.
[out] OutputBuffer
Ponteiro para um buffer de saída alocado pelo chamador no qual as informações são retornadas do driver de destino. Se FsControlCode especificar uma operação que não produz dados de saída, esse ponteiro será opcional e poderá ser NULL.
[out] OutputBufferLength
Comprimento do OutputBuffer em bytes.
[out] RetOutputBufferSize
Recebe o número de bytes realmente gravados (retornados) no buffer de saída.
Retornar valor
FsRtlKernelFsControlFile retorna STATUS_SUCCESS ou um valor NTSTATUS apropriado, como um dos seguintes.
Valor | Significado |
---|---|
STATUS_INSUFFICIENT_RESOURCES | Ocorreu uma falha de alocação de pool. |
STATUS_INVALID_PARAMETER | Um parâmetro inválido foi fornecido (por exemplo, um FileObject inválido). |
Comentários
FsRtlKernelFsControlFile define o IRP_MN_KERNEL_CALL código secundário que permite executar operações sem a necessidade de gerenciar privilégios de volume para determinadas operações.
Essa função pressupõe que todos os buffers passados para ele sejam buffers no modo kernel.
Requisitos
Requisito | Valor |
---|---|
Cabeçalho | ntifs.h |