NtQueryQuotaInformationFile 函数 (ntifs.h)
NtQueryQuotaInformationFile 例程检索与 FileHandle 参数指定的卷关联的配额项。
语法
__kernel_entry NTSYSCALLAPI NTSTATUS NtQueryQuotaInformationFile(
[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。 如果从上一次调用 NtQueryQuotaInformationFile恢复扫描,则设置为 FALSE。 调用方在首次调用 NtQueryQuotaInformationFile 时,必须将此参数设置为 TRUE。
返回值
NtQueryQuotaInformationFile 例程在 Buffer 参数或适当的 NTSTATUS 值(例如以下任 FILE_QUOTA_INFORMATION 一)中返回STATUS_SUCCESS:
返回代码 | 描述 |
---|---|
STATUS_INSUFFICIENT_RESOURCES | 没有足够的资源来完成操作。 这是一个错误代码。 |
STATUS_INVALID_DEVICE_REQUEST | 卷上未启用配额。 这是一个错误代码。 |
STATUS_INVALID_SID | StartSid 参数不包含有效的 SID。 这是一个错误代码。 |
STATUS_QUOTA_LIST_INCONSISTENT | SidList 参数不包含有效的格式正确的列表。 这是一个错误代码。 |
言论
NtQueryQuotaInformationFile 返回的信息量取决于与卷关联的配额信息的大小、缓冲区的大小以及是否请求了一组特定的条目。
调用 NtQueryQuotaInformationFile 将导致 IRP_MJ_SET_QUOTA 请求发送到与文件对象关联的设备对象,其句柄存储在 FileHandle 参数中。
例如,如果基础文件系统不支持配额信息(例如 FAT 和 CDFS 文件系统),NtQueryQuotaInformationFile 将失败返回STATUS_INVALID_DEVICE_REQUEST。
注意
如果在内核模式下调用 NtQueryQuotaInformationFile 函数,则应使用名称“ZwQueryQuotaInformationFile”而不是“NtQueryQuotaInformationFile”。
对于内核模式驱动程序的调用,NtXxx 和 ZwXxx 版本的 Windows 本机系统服务例程的行为方式可能以不同的方式处理和解释输入参数。 有关 NtXxx 与 ZwXxx 例程之间的关系的详细信息,请参阅 使用 Nt 和 Zw 版本的本机系统服务例程。
要求
要求 | 价值 |
---|---|
最低支持的客户端 | Windows 7 |
目标平台 | 普遍 |
标头 | ntifs.h(包括 Ntifs.h、FltKernel.h) |
库 | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | PASSIVE_LEVEL |
DDI 符合性规则 | HwStorPortProhibitedDDI、PowerIrpDDis |