#ifndef _NTIOAPI_H
/**
 * The FILE_ALL_INFORMATION structure is used as a container for several FILE_XXX_INFORMATION structures.
 * \sa https://learn.microsoft.com/en-us/windows-hardware/drivers/ddi/ntifs/ns-ntifs-_file_all_information
 */
typedef struct _FILE_ALL_INFORMATION
{
    FILE_BASIC_INFORMATION BasicInformation;
    FILE_STANDARD_INFORMATION StandardInformation;
    FILE_INTERNAL_INFORMATION InternalInformation;
    FILE_EA_INFORMATION EaInformation;
    FILE_ACCESS_INFORMATION AccessInformation;
    FILE_POSITION_INFORMATION PositionInformation;
    FILE_MODE_INFORMATION ModeInformation;
    FILE_ALIGNMENT_INFORMATION AlignmentInformation;
    FILE_NAME_INFORMATION NameInformation;
} FILE_ALL_INFORMATION, *PFILE_ALL_INFORMATION;
View code on GitHub// ntifs.h
typedef struct _FILE_ALL_INFORMATION {
  FILE_BASIC_INFORMATION     BasicInformation;
  FILE_STANDARD_INFORMATION  StandardInformation;
  FILE_INTERNAL_INFORMATION  InternalInformation;
  FILE_EA_INFORMATION        EaInformation;
  FILE_ACCESS_INFORMATION    AccessInformation;
  FILE_POSITION_INFORMATION  PositionInformation;
  FILE_MODE_INFORMATION      ModeInformation;
  FILE_ALIGNMENT_INFORMATION AlignmentInformation;
  FILE_NAME_INFORMATION      NameInformation;
} FILE_ALL_INFORMATION, *PFILE_ALL_INFORMATION;
View the official Windows Driver Kit DDI referenceThis structure is documented in Windows Driver Kit.
The FILE_ALL_INFORMATION structure is a container for several FILE_XXX_INFORMATION structures.
BasicInformationContains basic information about the file, which includes the file attributes and the file creation time. This member is a FILE_BASIC_INFORMATION structure.
StandardInformationContains standard information about a file, which includes the file allocation size, the end-of-file offset, and whether the file is a directory. This member is a FILE_STANDARD_INFORMATION structure.
InternalInformationContains the 8-byte file reference number for the file. This member is a FILE_INTERNAL_INFORMATION structure.
EaInformationSpecifies the size of the extended attributes of the file. This member is a FILE_EA_INFORMATION structure.
AccessInformationSpecifies the client's access rights to the file. This member is a FILE_ACCESS_INFORMATION structure.
PositionInformationSpecifies the current file position. This member is a FILE_POSITION_INFORMATION structure.
ModeInformationSpecifies the access mode in which the file was created or opened. This member is a FILE_MODE_INFORMATION structure.
AlignmentInformationSpecifies the device's memory address alignment requirement for data transfers. This member is a FILE_ALIGNMENT_INFORMATION structure.
NameInformationContains the file name. This member is a FILE_NAME_INFORMATION structure. This structure contains the first character in the file name string. The additional characters in the file name string immediately follow the structure. To accommodate the full file name, the buffer that is allocated to contain a FILE_ALL_INFORMATION structure must be large enough to contain both the structure and the part of the file name string that follows the structure.
This structure is used by the ZwQueryInformationFile routine.
FILE_ALL_INFORMATION combines several file-information structures into a single structure to reduce the number of queries that are required to obtain information about a file.