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 作为 fileInformation Class 的值传递,并将调用方分配的FILE_FS_OBJECTID_INFORMATION结构化缓冲区作为 fileInformation的值传递。
- 使用主要函数代码IRP_MJ_QUERY_VOLUME_INFORMATION创建 IRP。
查询此信息不需要特定的访问权限。 因此,只要通过卷本身的打开句柄访问卷或卷上的文件或目录,即可使用此信息。
可以通过以下任一方式设置此信息:
- FltSetVolumeInformation 或 ZwSetVolumeInformationFile,将 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) |