FSCTL_SHUFFLE_FILE IOCTL (ntifs.h)

FSCTL_SHUFFLE_FILE 在指定文件中添加或删除分配。

主要代码

IRP_MJ_DEVICE_CONTROL

输入缓冲区

指向描述要随机分配的 SHUFFLE_FILE_DATA 结构的指针。

输入缓冲区长度

输入缓冲区的大小(以字节为单位)。

输出缓冲区

没有;设置为 NULL。

输出缓冲区长度

设置为零。

状态块

返回值

FSCTL_SHUFFLE_FILE 成功完成后返回STATUS_SUCCESS;否则,它将返回 NTSTATUS 代码,如下所示之一。

返回代码 含义
STATUS_ACCESS_DENIED 由于各种原因,包括仅允许内核模式调用,或卷被锁定。
STATUS_BUFFER_TOO_SMALL 指定的输入缓冲区长度小于大小 (SHUFFLE_FILE_DATA) 。
STATUS_MEDIA_WRITE_PROTECTED 只读卷上不允许进行随机切换。

注解

此控制代码将导致数据在文件中移动。 调用方负责保护/擦除添加的分配中的随机数据。

若要执行此操作,请使用以下参数调用 FltFsControlFileZwFsControlFile

参数 说明
实例 [in]仅适用于 FltFsControlFile 。 调用方不透明的实例指针。 此参数是必需的,不能为 NULL。
FileObject [in]仅适用于 FltFsControlFile 。 作为此请求目标的文件或目录的文件对象指针。 此参数是必需的,不能为 NULL。
FileHandle [in]仅适用于 ZwFsControlFile 。 作为此请求目标的文件或目录的文件句柄。 此参数是必需的,不能为 NULL。
IoStatusBlock [out]仅适用于 ZwFsControlFile 。 指向包含请求最终状态 的IO_STATUS_BLOCK 结构的指针。
FsControlCode [in]设置为 FSCTL_SHUFFLE_FILE
InputBuffer [in]请参阅 IOCTL 参数。
InputBufferLength [in]请参阅 IOCTL 参数。

要求

要求
最低受支持的客户端 Windows 10 版本 1809
标头 ntifs.h

另请参阅

FltFsControlFile

FSCTL_REARRANGE_FILE

SHUFFLE_FILE_DATA

ZwFsControlFile