ZwQueryQuotaInformationFile 函数 (ntifs.h)

ZwQueryQuotaInformationFile 例程检索与 FileHandle 参数指定的卷关联的配额条目。

语法

NTSYSAPI NTSTATUS ZwQueryQuotaInformationFile(
  [in]           HANDLE           FileHandle,
  [out]          PIO_STATUS_BLOCK IoStatusBlock,
  [out]          PVOID            Buffer,
  [in]           ULONG            Length,
  [in]           BOOLEAN          ReturnSingleEntry,
  [in, optional] PVOID            SidList,
  [in]           ULONG            SidListLength,
  [in, optional] PSID             StartSid,
  [in]           BOOLEAN          RestartScan
);

参数

[in] FileHandle

表示为其请求配额信息的文件或卷的文件对象的句柄。

[out] IoStatusBlock

调用方 I/O 状态块的地址。

[out] Buffer

用于接收卷的配额信息的缓冲区。 配额信息的格式设置为一个或多个 FILE_QUOTA_INFORMATION 结构。 FILE_QUOTA_INFORMATION 结构中的 NextEntryOffset 字段包含列表中下一个配额条目的偏移量(以字节为单位)。 如果当前条目之后没有更多条目,则此成员为零。

[in] Length

缓冲区的长度(以字节为单位)。

[in] ReturnSingleEntry

一个布尔值,指示是否只返回一个条目,而不是用尽可能多的条目填充缓冲区。

[in, optional] SidList

要返回其配额信息的 SID 的可选列表。 列表中的每个条目都是 FILE_GET_QUOTA_INFORMATION 结构。 FILE_GET_QUOTA_INFORMATION 结构中的 NextEntryOffset 字段包含列表中下一个配额条目的偏移量(以字节为单位)。 如果当前条目之后没有更多条目,则此成员为零。

[in] SidListLength

SID 列表的长度(如果已指定)。

[in, optional] StartSid

指向开始扫描配额信息的条目 的 SID 的可选指针。 如果返回的信息以第一个 SID 以外的条目开头,则应设置此参数。 如果指定 了 SidList 参数,则忽略此参数。

[in] RestartScan

一个布尔值,指示是否从头开始重启配额信息的扫描。 如果将配额信息扫描从卷的配额信息列表中的第一个条目开始,请将此参数设置为 TRUE 。 如果从对 ZwQueryQuotaInformationFile 的先前调用恢复扫描,则设置为 FALSE。 首次调用 ZwQueryQuotaInformationFile 时,调用方必须将此参数设置为 TRUE

返回值

如果在 Buffer 参数或适当的 NTSTATUS 值中返回了至少一个FILE_QUOTA_INFORMATION结构,则 ZwQueryQuotaInformationFile 例程返回STATUS_SUCCESS,如下所示:

返回代码 说明
STATUS_INSUFFICIENT_RESOURCES 资源不足,无法完成该操作。 这是错误代码。
STATUS_INVALID_DEVICE_REQUEST 卷上未启用配额。 这是错误代码。
STATUS_INVALID_SID StartSid 参数不包含有效的 SID。 这是错误代码。
STATUS_QUOTA_LIST_INCONSISTENT SidList 参数不包含格式正确的有效列表。 这是错误代码。

注解

ZwQueryQuotaInformationFile 返回的信息量基于与卷关联的配额信息的大小、缓冲区的大小以及是否请求了一组特定的条目。

调用 ZwQueryQuotaInformationFile 将导致向设备对象发送 IRP_MJ_SET_QUOTA 请求,该请求与文件对象的句柄存储在 FileHandle 参数中。

如果基础文件系统不支持 FAT 和 CDFS 文件系统 (配额信息(例如,) ), 则 ZwQueryQuotaInformationFile 将无法返回STATUS_INVALID_DEVICE_REQUEST。

注意

如果在用户模式下调用 ZwQueryQuotaInformationFile 函数,则应使用名称“NtQueryQuotaInformationFile”而不是“ZwQueryQuotaInformationFile”。

对于来自内核模式驱动程序的调用,Windows Native System Services 例程的 NtXxxZwXxx 版本在处理和解释输入参数的方式上的行为可能有所不同。 有关例程的 NtXxxZwXxx 版本之间的关系的详细信息,请参阅 使用本机系统服务例程的 Nt 和 Zw 版本

要求

要求
最低受支持的客户端 Windows 7
目标平台 通用
标头 ntifs.h (包括 Ntifs.h、FltKernel.h)
Library NtosKrnl.lib
DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL
DDI 符合性规则 HwStorPortProhibitedDDI (storport) PowerIrpDDis (wdm)

另请参阅

FILE_GET_QUOTA_INFORMATION

FILE_QUOTA_INFORMATION

IO_STATUS_BLOCK

IRP_MJ_QUERY_QUOTA

IRP_MJ_SET_QUOTA

IoCheckQuotaBufferValidity

使用本机系统服务例程的 Nt 和 Zw 版本

ZwSetQuotaInformationFile