FileInformationClass Enum

The FileInformationClass enumeration defines the categories of information that can be queried or set for a file or directory using the NtQueryInformationFile and NtSetInformationFile functions.

Member Value Description
FileDirectoryInformation1Information about a directory file.
FileFullDirectoryInformation2Complete information about a directory entry.
FileBothDirectoryInformation3Information about a directory entry with short name.
FileBasicInformation4Basic attributes and timestamps.
FileStandardInformation5Standard file information such as allocation size.
FileInternalInformation6Internal identifier for the file.
FileEaInformation7Extended attributes.
FileAccessInformation8Access rights.
FileNameInformation9File name.
FileRenameInformation10Rename operation data.
FileLinkInformation11Hard link information.
FileNamesInformation12Names of files in a directory.
FileDispositionInformation13Delete pending flag.
FilePositionInformation14Current file pointer position.
FileEndOfFileInformation15End-of-file position.
FileAllocationInformation16Allocation size.
FileVolumeInformation18Volume information for a file.
FileAttributeTagInformation19Attribute tag information.
FileSecurityInformation25Security descriptor.
FileEndOfFileInformation15Alias for setting end-of-file.

Usage Example (C++)

#include <windows.h>
#include <ntdef.h>
#include <ntifs.h>

int main() {
    HANDLE hFile = CreateFileW(L"C:\\\\temp\\\\example.txt",
                               GENERIC_READ,
                               FILE_SHARE_READ,
                               nullptr,
                               OPEN_EXISTING,
                               FILE_ATTRIBUTE_NORMAL,
                               nullptr);
    if (hFile == INVALID_HANDLE_VALUE) return 1;

    FILE_BASIC_INFORMATION basicInfo;
    ULONG retLen;
    NTSTATUS status = NtQueryInformationFile(
        hFile,
        &retLen,
        &basicInfo,
        sizeof(basicInfo),
        FileBasicInformation);

    // Process basicInfo...
    CloseHandle(hFile);
    return 0;
}