SmKmVolumeQueryUniqueId
INT64 __fastcall SmKmVolumeQueryUniqueId(
DEVICE_OBJECT *DeviceObject,
VOID *UniqueIdBuffer,
UINT64 BufferSize,
UINT64 Sanitize){
UINT8 v6;
DEVICE_OBJECT *v7;
UINT64 v8;
UINT64 v9;
NTSTATUS v10;
unsigned int v11;
UINT64 Size;
void *v14;
LODWORD(Size) = BufferSize;
v6 = IoSetThreadHardErrorMode(0);
v10 = SmKmSendDeviceControl(v7, (DEVPROPKEY *)DeviceObject, v8, v9, (UINT64)UniqueIdBuffer, Size, v14);
if( v10 >= 0 )
{
v11 = *(unsigned __int16 *)UniqueIdBuffer;
if( v11 >= 2 )
{
memmove((UINT8 *)UniqueIdBuffer, (UINT8 *)UniqueIdBuffer + 2, *(unsigned __int16 *)UniqueIdBuffer);
SmSanitizeString((wchar_t *)UniqueIdBuffer, (v11 & 0xFFFFFFFE) + 2);
v10 = 0;
}
else
{
v10 = -1073740730;
}
}
IoSetThreadHardErrorMode(v6);
return(unsigned int)v10;
}Referenced by:
SmKmEtwAppendProductName
SmcCacheStart