CmpVolumeManagerGetContextForFilePath

INT64 __fastcall CmpVolumeManagerGetContextForFilePath(INT64 a1, INT64 a2, INT64 a3, INT64 *a4){
  INT64 v5; 
  int ContextForFile; 
  INT64 v7; 
  UINT64 v9; 
  UINT64 v10; 
  UINT64 v11; 
  UINT64 v12; 
  UINT64 v13; 
  _IO_STATUS_BLOCK IoStatusBlock; 
  _OBJECT_ATTRIBUTES ObjectAttributes; 
  VOID *FileHandle; 

  LODWORD(v13) = 0;
  LODWORD(v12) = 0;
  *(&ObjectAttributes.Length + 1) = 0;
  memset(&ObjectAttributes.Attributes + 1, 0, 20);
  FileHandle = 0i64;
  ObjectAttributes.RootDirectory = 0i64;
  LODWORD(v11) = 1;
  LODWORD(v10) = 7;
  LODWORD(v9) = 0;
  ObjectAttributes.ObjectName = (_UNICODE_STRING *)a2;
  IoStatusBlock = 0i64;
  ObjectAttributes.Length = 48;
  ObjectAttributes.Attributes = 576;
  ContextForFile = ZwCreateFile(
                     &FileHandle,
                     0x80ui64,
                     &ObjectAttributes,
                     &IoStatusBlock,
                     0i64,
                     v9,
                     v10,
                     v11,
                     v12,
                     0i64,
                     v13);
  if( ContextForFile >= 0 )
    ContextForFile = CmpVolumeManagerGetContextForFile(v5, FileHandle, v7, a4);
  if( FileHandle )
    ZwClose((_HANDLE)FileHandle);
  return(unsigned int)ContextForFile;
}

Referenced by:

CmpHandlePageFileOpenNotification