Функция IoCheckQuotaBufferValidity (ntifs.h)
Подпрограмма IoCheckQuotaBufferValidity проверяет допустимость указанного буфера квоты.
Синтаксис
NTSTATUS IoCheckQuotaBufferValidity(
[in] PFILE_QUOTA_INFORMATION QuotaBuffer,
[in] ULONG QuotaLength,
[out] PULONG ErrorOffset
);
Параметры
[in] QuotaBuffer
Указатель на буфер, содержащий проверяемые записи квоты.
[in] QuotaLength
Длина QuotaBuffer в байтах.
[out] ErrorOffset
Переменная, получающая смещение оскорбляющей записи в буфере квот при обнаружении ошибки. Эта переменная действительна, только если произошла ошибка.
Возвращаемое значение
IoCheckQuotaBufferValidity возвращает STATUS_SUCCESS, если буфер квоты действителен. В противном случае он возвращает STATUS_DATATYPE_MISALIGNMENT, если буфер квоты не выровнен по ULONG. Для всех других ошибок, включая неправильное соответствие записей в буфере, IoCheckQuotaBufferValidity возвращает STATUS_QUOTA_LIST_INCONSISTENT.
Комментарии
IoCheckQuotaBufferValidity проверяет каждую запись FILE_QUOTA_INFORMATION в указанном буфере квоты, чтобы убедиться, что выполняются следующие условия:
Вся запись должна находиться в буфере.
Значение Sid должно быть идентификатором безопасности (SID).
Значение SidLength должно соответствовать длине в байтах значения Sid.
Для всех записей, кроме последней, значение NextEntryOffset должно быть больше нуля и попадать на границу ULONG.
Кроме того, IoCheckQuotaBufferValidity проверяет буфер квоты, чтобы убедиться, что выполняются следующие условия:
Буфер должен быть выровнен по ULONG.
Длина, переданная в QuotaLength , соответствует фактической длине буфера.
Фактическая длина буфера не является отрицательной.
Чтобы быть допустимым, буфер квоты должен соответствовать всем этим условиям.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows 2000 |
Целевая платформа | Универсальное |
Верхняя часть | ntifs.h (включая Ntifs.h) |
Библиотека | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | < DISPATCH_LEVEL |