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。 否则,如果配额缓冲区不与 ULONG 对齐,则返回STATUS_DATATYPE_MISALIGNMENT。 对于所有其他错误,包括缓冲区中条目未对齐, IoCheckQuotaBufferValidity 返回STATUS_QUOTA_LIST_INCONSISTENT。
注解
IoCheckQuotaBufferValidity 会检查指定配额缓冲区中的每个FILE_QUOTA_INFORMATION项,以确保满足以下条件:
整个条目必须位于缓冲区内。
Sid 的值必须是 SID) (安全标识符。
SidLength 的值必须与 Sid 值的长度(以字节为单位)匹配。
对于除最后一个之外的所有条目, NextEntryOffset 的值必须大于零,并且必须位于 ULONG 边界上。
此外, IoCheckQuotaBufferValidity 会检查配额缓冲区,以确保满足以下条件:
缓冲区必须是 ULONG 对齐的。
在 QuotaLength 中传递的长度与缓冲区的实际长度匹配。
实际缓冲区长度是非否定的。
若要有效,配额缓冲区必须满足所有这些条件。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 2000 |
目标平台 | 通用 |
标头 | ntifs.h (包括 Ntifs.h) |
Library | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | < DISPATCH_LEVEL |