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 字节值,包含文件系统卷上调用方定义的可选信息。 此扩展信息的含义对文件系统是不透明的。
注解
可以通过以下任一方式查询此信息:
- 调用 FltQueryVolumeInformation 或 ZwQueryVolumeInformationFile,将 FileFsObjectIdInformation 作为 FileInformationClass 的值传递,并将调用方分配FILE_FS_OBJECTID_INFORMATION结构化缓冲区作为 FileInformation 的值传递。
- 使用主函数代码IRP_MJ_QUERY_VOLUME_INFORMATION创建 IRP。
无需特定访问权限即可查询此信息。 因此,只要通过对卷本身或卷上的文件或目录的打开句柄访问卷,此信息就可用。
可以通过以下任一方式设置此信息:
- 调用 FltSetVolumeInformation 或 ZwSetVolumeInformationFile,将 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 参数中传递给 FltQueryVolumeInformation、FltSetVolumeInformation、ZwQueryVolumeInformationFile 或 ZwSetVolumeInformationFile 的缓冲区大小必须至少为 (FILE_FS_OBJECTID_INFORMATION) 。
此结构必须在 LONGLONG (8 字节) 边界上对齐。
要求
要求 | 值 |
---|---|
Header | ntddk.h (包括 Ntddk.h、Ntifs.h、Fltkernel.h) |