DeviceIoControl FSCTL

编程入门 行业动态 更新时间:2024-10-26 20:29:02

 

FSCTL_SET_COMPRESSION

FSCTL_SET_COMPRESSION DeviceIoControl operation设置文件系统支持每个文件和每个目录压缩的卷上的文件或目录的压缩状态。 您可以使用此操作压缩或解压缩此卷上的文件或目录。

dwIoControlCode = FSCTL_SET_COMPRESSION; //操作代码

lpInBuffer; //指向输入缓冲区的指针

nInBufferSize; //输入缓冲区的大小

lpOutBuffer = NULL; //指向输出缓冲区的指针; 不曾用过; 必须为NULL

nOutBufferSize = 0; //输出缓冲区的大小; 不曾用过; 必须为零

lpBytesReturned; //指向DeviceIoControl函数使用的DWORD的指针

参数

lpInBuffer

指向包含USHORT的缓冲区,该USHORT指定文件或目录的新压缩状态。

定义了以下值:

 含义 COMPRESSION_FORMAT_NONE 解压缩文件或目录。 COMPRESSION_FORMAT_DEFAULT 使用默认压缩格式压缩文件或目录。 COMPRESSION_FORMAT_LZNT1 使用LZNT1压缩格式压缩文件或目录。 所有其他价值观 保留供将来使用。 

nInBufferSize

指定lpInBuffer指向的缓冲区的大小(以字节为单位)。 缓冲区必须足够大才能包含一个USHORT值。

lpOutBuffer

指向输出缓冲区。 不用于此操作。 设置为NULL。

nOutBufferSize

指定lpOutBuffer指向的缓冲区的大小(以字节为单位 。 不用于此操作。 设为零。

lpBytesReturned

指向DWORD的指针。 该值不能为NULL。 尽管FSCTL_SET_COMPRESSION操作不产生输出数据且lpOutBuffer应为NULL,但DeviceIoControlfunction使用lpBytesReturned指向的变量。 在操作之后,该变量的值没有意义

返回值

如果操作成功, 则为DeviceIoControl 返回TRUE。

如果操作失败,则DeviceIoControl返回FALSE。 要获取扩展错误信息,请调用GetLastError 。

备注

在此版本中,LZNT1是唯一实现的压缩算法。 因此,LZNT1将用作DEFAULT压缩方法。 未来版本可能有其他压缩方法,可用作DEFAULT。

如果包含指定文件或目录的卷的文件系统不支持每个文件或每个目录压缩,则FSCTL_SET_COMPRESSION操作将失败。

Windows NT版本3.51支持在使用NTFS格式化的卷上进行文件压缩。

文件或目录的压缩状态更改与对DeviceIoControl的调用同步发生。

您可以使用FSCTL_GET_COMPRESSION DeviceIoControl操作获取文件或目录的压缩状态。

您可以通过调用GetFileAttributes函数来获取文件或目录的pression属性。 pression属性指示文件或目录是否已压缩。 压缩状态指示文件或目录是否被压缩,如果是,则指示压缩数据的格式。

更多推荐

DeviceIoControl,FSCTL

本文发布于:2023-05-29 15:07:35,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/347276.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:DeviceIoControl   FSCTL

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!