FILE_FS_OBJECTID_INFORMATION 结构 (ntddk.h)

FILE_FS_OBJECTID_INFORMATION 结构用于查询或设置文件系统卷的对象 ID。

语法

typedef struct _FILE_FS_OBJECTID_INFORMATION {
  UCHAR ObjectId[16];
  UCHAR ExtendedInfo[48];
} FILE_FS_OBJECTID_INFORMATION, *PFILE_FS_OBJECTID_INFORMATION;

成员

ObjectId[16]

标识磁盘上的文件系统卷的 16 字节 GUID。

ExtendedInfo[48]

一个 48 字节值,包含文件系统卷上调用方定义的可选信息。 此扩展信息的含义对文件系统是不透明的。

注解

可以通过以下任一方式查询此信息:

  • 调用 FltQueryVolumeInformationZwQueryVolumeInformationFile,将 FileFsObjectIdInformation 作为 FileInformationClass 的值传递,并将调用方分配FILE_FS_OBJECTID_INFORMATION结构化缓冲区作为 FileInformation 的值传递。
  • 使用主函数代码IRP_MJ_QUERY_VOLUME_INFORMATION创建 IRP。

无需特定访问权限即可查询此信息。 因此,只要通过对卷本身或卷上的文件或目录的打开句柄访问卷,此信息就可用。

可以通过以下任一方式设置此信息:

  • 调用 FltSetVolumeInformationZwSetVolumeInformationFile,将 FileFsObjectIdInformation 作为 FileInformationClass 的值传递,并将调用方分配FILE_FS_OBJECTID_INFORMATION结构化缓冲区作为 FileInformation 的值传递。
  • 创建包含主要函数代码IRP_MJ_SET_VOLUME_INFORMATION的 IRP。

FILE_WRITE_DATA需要访问卷才能设置此信息。

对卷对象 ID 的支持特定于文件系统。 在 NTFS 中,分布式链接跟踪服务广泛使用卷对象 ID。

请务必注意,卷对象 ID 与卷 GUID 不同。 卷对象 ID 由文件系统分配给文件系统卷。 卷 GUID唯一卷名称与文件系统无关;它由卷装载管理器分配给基础存储卷。

若要获取卷的卷 GUID,请使用 Win32 GetVolumeNameForVolumeMountPointW 函数或 FltGetVolumeGuidName 例程。

在 FileInformation 参数中传递给 FltQueryVolumeInformationFltSetVolumeInformationZwQueryVolumeInformationFileZwSetVolumeInformationFile 的缓冲区大小必须至少为 (FILE_FS_OBJECTID_INFORMATION) 。

此结构必须在 LONGLONG (8 字节) 边界上对齐。

要求

要求
Header ntddk.h (包括 Ntddk.h、Ntifs.h、Fltkernel.h)

另请参阅

FltGetVolumeGuidName

FltQueryVolumeInformation

FltSetVolumeInformation

IRP_MJ_QUERY_VOLUME_INFORMATION

IRP_MJ_SET_VOLUME_INFORMATION

ZwQueryVolumeInformationFile

ZwSetVolumeInformationFile