Функция 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 (include Ntifs.h) |
библиотеки | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | < DISPATCH_LEVEL |