Função FsRtlGetFileSize (ntifs.h)

A rotina FsRtlGetFileSize é usada para obter o tamanho de um arquivo.

Sintaxe

NTSTATUS FsRtlGetFileSize(
  [in]  PFILE_OBJECT   FileObject,
  [out] PLARGE_INTEGER FileSize
);

Parâmetros

[in] FileObject

Um ponteiro para o objeto de arquivo a ser consultado.

[out] FileSize

Um ponteiro para um inteiro grande que recebe o tamanho do arquivo na saída.

Retornar valor

FsRtlGetFileSize retorna STATUS_SUCCESS ou um erro apropriado status representando o status de conclusão final da operação. Os possíveis códigos de status de erro incluem o seguinte:

Código de retorno Descrição
STATUS_INSUFFICIENT_RESOURCES
A memória necessária para uso por essa função não pôde ser alocada.
STATUS_FILE_IS_A_DIRECTORY
O FileObject especificado refere-se a um diretório.

Comentários

A rotina FsRtlGetFileSize é usada para recuperar o tamanho do arquivo de um arquivo. Ao contrário de ZwQueryInformationFile, FsRtlGetFileSize não adquire o bloqueio de objeto de arquivo em objetos de arquivo síncronos. Se você já possui recursos do sistema de arquivos, deve chamar FsRtlGetFileSize em vez de ZwQueryInformationFile, pois tentar adquirir o bloqueio de objeto de arquivo violaria a ordem de bloqueio e levaria a deadlocks. A função ZwQueryInformationFile só deverá ser se você ainda não tiver recursos do sistema de arquivos.

FsRtlGetFileSize usará E/S rápida se houver suporte ou consulta regular baseada em IRP para extrair o tamanho do arquivo.

Requisitos

Requisito Valor
Plataforma de Destino Universal
Cabeçalho ntifs.h (inclua Ntifs.h)
Biblioteca NtosKrnl.lib
DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL
Regras de conformidade de DDI HwStorPortProhibitedDIs(storport), PowerIrpDDis(wdm)

Confira também

FltQueryInformationFile

ZwQueryInformationFile