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 (include Ntifs.h)
NtosKrnl.lib
DLL NtosKrnl.exe
IRQL < DISPATCH_LEVEL

另请参阅

FILE_QUOTA_INFORMATION

IRP_MJ_QUERY_QUOTA

IRP_MJ_SET_QUOTA