ZwSetQuotaInformationFile 函数 (ntifs.h)
ZwSetQuotaInformationFile 例程更改与 FileHandle 参数关联的卷的配额条目。 指定缓冲区中的所有配额条目都应用于卷。
语法
NTSYSAPI NTSTATUS ZwSetQuotaInformationFile(
[in] HANDLE FileHandle,
[out] PIO_STATUS_BLOCK IoStatusBlock,
[in] PVOID Buffer,
[in] ULONG Length
);
参数
[in] FileHandle
文件对象的句柄,表示要修改其配额信息的文件或卷。
[out] IoStatusBlock
调用方 I/O 状态块的地址。
[in] Buffer
包含应应用于卷的新配额条目的缓冲区。 配额信息的格式必须设置为一个或多个 FILE_QUOTA_INFORMATION 结构。 FILE_QUOTA_INFORMATION 结构中的 NextEntryOffset 字段包含列表中下一个配额条目的偏移量(以字节为单位)。 如果当前条目之后没有其他条目,则此成员为零。
[in] Length
缓冲区的长度(以字节为单位)。
返回值
ZwSetQuotaInformationFile 例程返回STATUS_SUCCESS或相应的 NTSTATUS 值,例如以下值之一:
返回代码 | 说明 |
---|---|
STATUS_INSUFFICIENT_RESOURCES | 资源不足,无法完成操作。 这是错误代码。 |
STATUS_INVALID_DEVICE_REQUEST | 卷上未启用配额。 这是错误代码。 |
STATUS_MEDIA_WRITE_PROTECTED | 卷是只读的。 这是错误代码。 |
注解
ZwSetQuotaInformationFile 例程将指定 Buffer 参数中的所有配额条目应用于卷。
IoCheckQuotaBufferValidity 函数可以检查作为 Buffer 参数传递的指定配额缓冲区是否有效。
调用 ZwSetQuotaInformationFile 将导致 将IRP_MJ_SET_QUOTA 请求发送到与文件对象关联的设备对象,该文件对象的句柄存储在 FileHandle 参数中。
如果基础文件系统不支持 FAT 和 CDFS 文件系统 (配额信息(例如) ), 则 ZwSetQuotaInformationFile 将无法返回STATUS_INVALID_DEVICE_REQUEST。
注意
如果在用户模式下调用 ZwSetQuotaInformationFile 函数,则应使用名称“NtSetQuotaInformationFile”而不是“ZwSetQuotaInformationFile”。
对于来自内核模式驱动程序的调用,Windows 本机系统服务例程的 NtXxx 和 ZwXxx 版本在处理和解释输入参数的方式上的行为可能有所不同。 有关例程的 NtXxx 和 ZwXxx 版本之间的关系的详细信息,请参阅 使用本机系统服务例程的 Nt 和 Zw 版本。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 7 |
目标平台 | 通用 |
标头 | ntifs.h (包括 Ntifs.h、FltKernel.h) |
Library | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | PASSIVE_LEVEL |
DDI 符合性规则 | HwStorPortProhibitedDDI (storport) 、 PowerIrpDDis (wdm) |