Compartilhar via


Função FsRtlGetFileSize (ntifs.h)

A rotina de 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.

Valor de retorno

FsRtlGetFileSize retorna STATUS_SUCCESS ou um status de erro apropriado que representa o status de conclusão final da operação. Os códigos de status de erro possíveis 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.

Observações

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 deve ser somente 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
da Plataforma de Destino Universal
cabeçalho ntifs.h (inclua Ntifs.h)
biblioteca NtosKrnl.lib
de DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL
regras de conformidade de DDI HwStorPortProhibitedDIs(storport), PowerIrpDDis(wdm)

Consulte também

FltQueryInformationFile

ZwQueryInformationFile