#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 reference
This 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.
NextEntryOffset
Offset, in bytes, of the next quota entry in the list. If there are no more entries after the current one, this member is zero.
SidLength
Length, in bytes, of the Sid member.
ChangeTime
Time when this quota entry was last changed.
QuotaUsed
Amount of disk space on this volume that is currently being used by the user.
QuotaThreshold
Maximum 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.
QuotaLimit
Maximum amount of disk space on this volume that can be used by the user.
Sid
Security 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.