FltQueryVolumeInformationFile 函数 (fltkernel.h)
FltQueryVolumeInformationFile 检索给定文件、目录、存储设备或卷的卷信息。
语法
NTSTATUS FLTAPI FltQueryVolumeInformationFile(
[in] PFLT_INSTANCE Instance,
[in] PFILE_OBJECT FileObject,
[out] PVOID FsInformation,
[in] ULONG Length,
[in] FS_INFORMATION_CLASS FsInformationClass,
[out, optional] PULONG LengthReturned
);
参数
[in] Instance
调用方不透明的实例指针。 此参数是必需的,不能为 NULL。
[in] FileObject
打开的文件、目录、存储设备或卷的文件对象指针。 此参数是必需的,不能为 NULL。
[out] FsInformation
指向调用方分配的缓冲区的指针,该缓冲区接收有关文件的信息。 FsInformationClass 参数指定信息的类型。 此参数是必需的,不能为 NULL。
[in] Length
FsInformation 缓冲区的大小(以字节为单位)。
[in] FsInformationClass
要返回的卷信息的类型。 下列类型作之一:
值 | 含义 |
---|---|
|
返回一个 FILE_FS_ATTRIBUTE_INFORMATION 结构,其中包含有关负责卷的文件系统的属性信息。 |
|
返回一个 FILE_FS_CONTROL_INFORMATION 结构,其中包含有关卷的文件系统控制信息。 |
|
返回包含卷的设备信息的 FILE_FS_DEVICE_INFORMATION 结构。 |
|
返回一个 FILE_FS_DRIVER_PATH_INFORMATION 结构,该结构包含有关指定驱动程序是否位于卷的 I/O 路径中的信息。 调用方必须将驱动程序的名称存储在 FILE_FS_DRIVER_PATH_INFORMATION 结构中 ,然后才能调用 FltQueryVolumeInformationFile。 |
|
返回一个 FILE_FS_FULL_SIZE_INFORMATION 结构,其中包含有关卷上可用空间总量的信息。 |
|
返回一个 FILE_FS_OBJECTID_INFORMATION 结构,其中包含卷的特定于文件系统的对象 ID 信息。 请注意,这与操作系统分配的基于 (GUID) 唯一卷名称不同。 |
|
返回一个 FILE_FS_SIZE_INFORMATION 结构,其中包含与调用线程关联的用户可用的卷上的空间量的相关信息。 |
|
返回一个 FILE_FS_VOLUME_INFORMATION ,其中包含卷标签、序列号和创建时间等有关卷的信息。 |
|
返回一个 FILE_FS_SECTOR_SIZE_INFORMATION 结构,其中包含有关卷的物理扇区大小和逻辑扇区大小的信息。 |
[out, optional] LengthReturned
指向调用方分配的变量的指针,该变量接收 FsInformation 缓冲区中返回的信息的大小(以字节为单位)。 此参数是可选的,可以为 NULL。
返回值
FltQueryVolumeInformationFile 返回 STATUS_SUCCESS 或相应的 NTSTATUS 值,如下所示:
返回代码 | 说明 |
---|---|
|
当前未装载卷。 这是错误代码。 |
注解
FltQueryVolumeInformationFile 检索给定文件、目录、存储设备或卷的卷信息。
如果 FileObject 表示直接打开的设备,则只能将 FileFsDeviceInformation 指定为 FsInformationClass 的值。
FltQueryVolumeInformationFile 在特定文件系统不支持的 FILE_FS_XXX_INFORMATION 结构的任何成员中返回零。
要求
要求 | 值 |
---|---|
目标平台 | 通用 |
标头 | fltkernel.h (包括 Fltkernel.h) |
Library | FltMgr.lib |
DLL | Fltmgr.sys |
IRQL | PASSIVE_LEVEL |
另请参阅
FILE_FS_DRIVER_PATH_INFORMATION
FILE_FS_SECTOR_SIZE_INFORMATION