Поделиться через


Функция NtQueryQuotaInformationFile (ntifs.h)

Подпрограмма NtQueryQuotaInformationFile извлекает записи квоты, связанные с томом, указанным параметром FileHandle .

Синтаксис

__kernel_entry NTSYSCALLAPI NTSTATUS NtQueryQuotaInformationFile(
  [in]           HANDLE           FileHandle,
  [out]          PIO_STATUS_BLOCK IoStatusBlock,
  [out]          PVOID            Buffer,
  [in]           ULONG            Length,
  [in]           BOOLEAN          ReturnSingleEntry,
  [in, optional] PVOID            SidList,
  [in]           ULONG            SidListLength,
  [in, optional] PSID             StartSid,
  [in]           BOOLEAN          RestartScan
);

Параметры

[in] FileHandle

Дескриптор для объекта файла, представляющего файл или том, для которого запрашивается информация о квоте.

[out] IoStatusBlock

Адрес блока состояния ввода-вывода вызывающего абонента.

[out] Buffer

Буфер для получения сведений о квоте для тома. Сведения о квоте форматируются в виде одной или нескольких FILE_QUOTA_INFORMATION структур. Поле NextEntryOffset в структуре FILE_QUOTA_INFORMATION содержит смещение в байтах следующей записи квоты в списке. Если после текущей записи больше нет, этот элемент равен нулю.

[in] Length

Длина буфера в байтах.

[in] ReturnSingleEntry

Логическое значение, указывающее, следует ли возвращать только одну запись, а не заполнять буфер максимально возможным количеством записей.

[in, optional] SidList

Необязательный список идентификаторов безопасности, для которых необходимо вернуть сведения о квоте. Каждая запись в списке представляет собой FILE_GET_QUOTA_INFORMATION структуру. Поле NextEntryOffset в структуре FILE_GET_QUOTA_INFORMATION содержит смещение в байтах следующей записи квоты в списке. Если после текущей записи больше нет, этот элемент равен нулю.

[in] SidListLength

Длина в байтах списка SID , если он был указан.

[in, optional] StartSid

Необязательный указатель на идентификатор безопасности записи, с которого начинается сканирование сведений о квоте. Этот параметр следует задать, если возвращаемые сведения должны начинаться с записи, отличной от первого идентификатора безопасности. Этот параметр игнорируется, если указан параметр SidList .

[in] RestartScan

Логическое значение, указывающее, следует ли перезапустить сканирование сведений о квоте с самого начала. Задайте для этого параметра значение TRUE , если проверка сведений о квоте начинается с первой записи в списке сведений о квотах тома. Установите значение FALSE , если при возобновлении проверки из предыдущего вызова NtQueryQuotaInformationFile. Вызывающий объект должен задать для этого параметра значение TRUE при первом вызове NtQueryQuotaInformationFile .

Возвращаемое значение

Подпрограмма NtQueryQuotaInformationFile возвращает STATUS_SUCCESS, если в параметре Buffer возвращается хотя бы одна FILE_QUOTA_INFORMATION структура или соответствующее значение NTSTATUS, например одно из следующих значений:

Код возврата Описание
STATUS_INSUFFICIENT_RESOURCES Недостаточно ресурсов для завершения операции. Это код ошибки.
STATUS_INVALID_DEVICE_REQUEST Квоты для тома не включены. Это код ошибки.
STATUS_INVALID_SID Параметр StartSid не содержит допустимый идентификатор безопасности. Это код ошибки.
STATUS_QUOTA_LIST_INCONSISTENT Параметр SidList не содержал допустимый правильно сформированный список. Это код ошибки.

Комментарии

Объем сведений, возвращаемых NtQueryQuotaInformationFile , зависит от размера сведений о квоте, связанных с томом, размера буфера и того, был ли запрошен определенный набор записей.

Вызов NtQueryQuotaInformationFile приведет к отправке запроса IRP_MJ_SET_QUOTA объекту устройства, связанному с объектом файла, дескриптор которого хранится в параметре FileHandle .

Если базовая файловая система не поддерживает сведения о квоте (например, файловые системы FAT и CDFS), ntQueryQuotaInformationFile не сможет вернуть STATUS_INVALID_DEVICE_REQUEST.

Примечание

Если вызов функции NtQueryQuotaInformationFile происходит в режиме ядра, следует использовать имя "ZwQueryQuotaInformationFile" вместо "NtQueryQuotaInformationFile".

Для вызовов из драйверов режима ядра версии NtXxx и ZwXxx подпрограммы собственных системных служб Windows могут вести себя по-разному, так как они обрабатывают и интерпретируют входные параметры. Дополнительные сведения о связи между версиями процедуры NtXxx и ZwXxx см. в разделе Использование версий Nt и Zw для процедур собственных системных служб.

Требования

Требование Значение
Минимальная версия клиента Windows 7
Целевая платформа Универсальное
Верхняя часть ntifs.h (включая Ntifs.h, FltKernel.h)
Библиотека NtosKrnl.lib
DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL
Правила соответствия DDI HwStorPortProhibitedDIs, PowerIrpDDis

См. также раздел

FILE_GET_QUOTA_INFORMATION

FILE_QUOTA_INFORMATION

IO_STATUS_BLOCK

IRP_MJ_QUERY_QUOTA

IRP_MJ_SET_QUOTA

IoCheckQuotaBufferValidity

Использование версий Nt и Zw собственных процедур системных служб

**NtSetQuotaInformationFile **