@@ -2372,14 +2372,15 @@ query_volume_information(PDEVICE_OBJECT DeviceObject, PIRP Irp,
2372
2372
2373
2373
case FileFsObjectIdInformation :
2374
2374
dprintf ("* %s: FileFsObjectIdInformation\n" , __func__ );
2375
- FILE_FS_OBJECTID_INFORMATION * ffoi =
2375
+ FILE_FS_OBJECTID_INFORMATION * ffoi =
2376
2376
Irp -> AssociatedIrp .SystemBuffer ;
2377
- // RtlCopyMemory(ffoi->ObjectId, &Vcb->superblock.uuid.uuid[0],
2378
- // sizeof (UCHAR) * 16);
2377
+ RtlZeroMemory (ffoi -> ObjectId , sizeof (ffoi -> ObjectId ));
2378
+ uint64_t guid = dmu_objset_fsid_guid (zfsvfs -> z_os );
2379
+ RtlCopyMemory (ffoi -> ObjectId , & guid , sizeof (ffoi -> ObjectId ));
2379
2380
RtlZeroMemory (ffoi -> ExtendedInfo , sizeof (ffoi -> ExtendedInfo ));
2380
2381
Irp -> IoStatus .Information =
2381
2382
sizeof (FILE_FS_OBJECTID_INFORMATION );
2382
- Status = STATUS_OBJECT_NAME_NOT_FOUND ; // returned by NTFS
2383
+ Status = STATUS_SUCCESS ;
2383
2384
break ;
2384
2385
2385
2386
case FileFsVolumeInformation :
@@ -3378,6 +3379,7 @@ create_or_get_object_id(PDEVICE_OBJECT DeviceObject, PIRP Irp,
3378
3379
RtlCopyMemory (& fob -> ObjectId [0 ], & zp -> z_id , sizeof (UINT64 ));
3379
3380
uint64_t guid = dmu_objset_fsid_guid (zfsvfs -> z_os );
3380
3381
RtlCopyMemory (& fob -> ObjectId [sizeof (UINT64 )], & guid , sizeof (UINT64 ));
3382
+ RtlZeroMemory (fob -> ExtendedInfo , sizeof (fob -> ExtendedInfo ));
3381
3383
3382
3384
VN_RELE (vp );
3383
3385
0 commit comments