#ifndef _NTIOAPI_H
typedef struct _FILE_QUOTA_INFORMATION
{
ULONG NextEntryOffset;
ULONG SidLength;
LARGE_INTEGER ChangeTime;
LARGE_INTEGER QuotaUsed;
LARGE_INTEGER QuotaThreshold;
LARGE_INTEGER QuotaLimit;
_Field_size_bytes_(SidLength) SID Sid;
} FILE_QUOTA_INFORMATION, *PFILE_QUOTA_INFORMATION;
View code on GitHub// ntifs.h
typedef struct _FILE_QUOTA_INFORMATION {
ULONG NextEntryOffset;
ULONG SidLength;
LARGE_INTEGER ChangeTime;
LARGE_INTEGER QuotaUsed;
LARGE_INTEGER QuotaThreshold;
LARGE_INTEGER QuotaLimit;
SID Sid;
} FILE_QUOTA_INFORMATION, *PFILE_QUOTA_INFORMATION;
View the official Windows Driver Kit DDI referenceThis structure is documented in Windows Driver Kit.
The FILE_QUOTA_INFORMATION structure is used to query or set per-user quota information for each of the files in a directory.
NextEntryOffsetOffset, in bytes, of the next quota entry in the list. If there are no more entries after the current one, this member is zero.
SidLengthLength, in bytes, of the Sid member.
ChangeTimeTime when this quota entry was last changed.
QuotaUsedAmount of disk space on this volume that is currently being used by the user.
QuotaThresholdMaximum mount of disk space on this volume that can be used by the user without triggering an event. For more information, see FILE_FS_CONTROL_INFORMATION.
QuotaLimitMaximum amount of disk space on this volume that can be used by the user.
SidSecurity identifier (SID) of the user.
No specific access rights are required to query this information. To perform this query, create an IRP with major function code IRP_MJ_QUERY_QUOTA.
FILE_WRITE_DATA access to the volume is required to set this information. To perform this operation, create an IRP with major function code IRP_MJ_SET_QUOTA.
To check the validity of a buffer containing FILE_QUOTA_INFORMATION structure, call IoCheckQuotaBufferValidity.
On 32-bit platforms, this structure must be aligned on a LONG (4-byte) boundary. If a buffer contains two or more of these structures, the NextEntryOffset value in each entry, except the last, falls on a 4-byte boundary.
On 64-bit platforms, this structure must be aligned on a LONGLONG (8-byte) boundary. If a buffer contains two or more of these structures, the NextEntryOffset value in each entry, except the last, falls on an 8-byte boundary.