IoVolumeDeviceToGuid
NTSTATUS __stdcall IoVolumeDeviceToGuid(VOID *VolumeDeviceObject, _GUID *Guid){
NTSTATUS result;
wchar_t *Buffer;
NTSTATUS v5;
_UNICODE_STRING GuidPath;
_UNICODE_STRING GuidString;
*(_QWORD *)&GuidPath.Length = 0i64;
GuidPath.Buffer = 0i64;
*(_DWORD *)(&GuidString.MaximumLength + 1) = 0;
result = IoVolumeDeviceToGuidPath(VolumeDeviceObject, &GuidPath);
if( result >= 0 )
{
Buffer = GuidPath.Buffer;
GuidString.Length = GuidPath.Length - 20;
GuidString.MaximumLength = GuidPath.MaximumLength - 20;
GuidString.Buffer = GuidPath.Buffer + 10;
v5 = RtlGUIDFromString(&GuidString, Guid);
ExFreePoolWithTag(Buffer, 0);
return v5;
}
return result;
}Referenced by:
CmpVolumeContextStart
CmpVolumeManagerGetContextForFile
FsRtlVolumeDeviceToCorrelationId
IopMountVolume