SmKmStoreFileDelete

NTSTATUS __stdcall SmKmStoreFileDelete(_SMKM_FILE_INFO *FileInfo){
  UINT64 v2; 
  char v3; 
  char v4; 
  NTSTATUS Status; 
  INT16 v6; 
  NTSTATUS v7; 
  UINT64 FileInformationClass; 
  _IO_STATUS_BLOCK IoStatusBlock; 
  INT8 FileInformation; 

  IoStatusBlock = 0i64;
  IoSetThreadHardErrorMode(0);
  v2 = *(_QWORD *)FileInfo;
  FileInformation = 1;
  LODWORD(FileInformationClass) = 13;
  v4 = v3;
  Status = ZwSetInformationFile(v2, (UINT64)&IoStatusBlock, &FileInformation, 1ui64, FileInformationClass);
  v7 = 0;
  if( Status == 259 )
  {
    KeWaitForSingleObject(*((_QWORD *)FileInfo + 1) + 152i64, 0, 0, 0, 0i64);
    Status = IoStatusBlock.Status;
  }
  LOBYTE(v6) = v4;
  if( Status < 0 )
    v7 = Status;
  IoSetThreadHardErrorMode(v6);
  return v7;
}

Referenced by:

SmKmStoreFileCreate
SmKmStoreFileCreateForIoType
SmcCacheCleanup