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

另请参阅

FILE_QUOTA_INFORMATION

IRP_MJ_QUERY_QUOTA

IRP_MJ_SET_QUOTA