PfSnQueryVolumeInfo

__int64 __fastcall PfSnQueryVolumeInfo(__int64 a1, const WCHAR *a2, _OWORD *a3, _QWORD *a4, _DWORD *a5){
  __int64 v6; 
  int VolumeInformationFile; 
  __int128 v10; 
  __int128 v11; 
  UINT64 FsInformationClass; 
  __m256i FileHandle; 
  _UNICODE_STRING DestinationString; 
  _IO_STATUS_BLOCK IoStatusBlock; 
  __int128 FsInformation; 
  __int64 v18; 

  memset(&FileHandle, 0, 24);
  v18 = 0i64;
  v6 = 0x200000000i64;
  FsInformation = 0i64;
  FileHandle.m256i_i64[3] = 0x200000000i64;
  DestinationString = 0i64;
  IoStatusBlock = 0i64;
  RtlInitUnicodeString(&DestinationString, a2);
  VolumeInformationFile = PfpOpenHandleCreate(
                            (__int64)&FileHandle,
                            a1,
                            (__int64)&DestinationString,
                            0i64,
                            1048960,
                            0,
                            0,
                            0i64);
  if( VolumeInformationFile < 0
    || (LODWORD(FsInformationClass) = 1,
        VolumeInformationFile = NtQueryVolumeInformationFile(
                                  FileHandle.m256i_u64[0],
                                  (UINT64)&IoStatusBlock,
                                  (UINT64)&FsInformation,
                                  0x18ui64,
                                  FsInformationClass),
        (VolumeInformationFile & 0xC0000000) == -1073741824) )
  {
    v6 = FileHandle.m256i_i64[3];
  }
  else
  {
    v10 = *(_OWORD *)FileHandle.m256i_i8;
    v11 = *(_OWORD *)&FileHandle.m256i_u64[2];
    FileHandle.m256i_i64[0] = 0i64;
    *a4 = FsInformation;
    VolumeInformationFile = 0;
    *a5 = DWORD2(FsInformation);
    *a3 = v10;
    FileHandle.m256i_i64[3] = 0x200000000i64;
    *(_OWORD *)&FileHandle.m256i_u64[1] = 0i64;
    a3[1] = v11;
  }
  if( (v6 & 0x400000000i64) != 0 )
    PfpOpenHandleClose(&FileHandle, a1);
  return(unsigned int)VolumeInformationFile;
}

Referenced by:

PfSnOpenVolumesForPrefetch