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”。

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

要求

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

另请参阅

FILE_GET_QUOTA_INFORMATION

FILE_QUOTA_INFORMATION

IO_STATUS_BLOCK

IRP_MJ_QUERY_QUOTA

IRP_MJ_SET_QUOTA

IoCheckQuotaBufferValidity

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

ZwQueryQuotaInformationFile