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 作为 fileInformation Class 的值传递,并将调用方分配的FILE_FS_OBJECTID_INFORMATION结构化缓冲区作为 fileInformation的值传递。
  • 使用主要函数代码IRP_MJ_QUERY_VOLUME_INFORMATION创建 IRP。

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

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

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

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

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

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

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

FileInformation 参数中传递给 FltQueryVolumeInformation的缓冲区的大小,FltSetVolumeInformation, ZwQueryVolumeInformationFile,或 ZwSetVolumeInformationFile 必须至少 大小(FILE_FS_OBJECTID_INFORMATION)。

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

要求

要求 价值
标头 ntddk.h (包括 Ntddk.h、Ntifs.h、Fltkernel.h)

另请参阅

FltGetVolumeGuidName

FltQueryVolumeInformation

FltSetVolumeInformation

IRP_MJ_QUERY_VOLUME_INFORMATION

IRP_MJ_SET_VOLUME_INFORMATION

ZwQueryVolumeInformationFile

ZwSetVolumeInformationFile