SmKmStoreFileDelete

__int64 __fastcall SmKmStoreFileDelete(__int64 a1){
  UINT8 v2; 
  VOID *v3; 
  UINT8 v4; 
  NTSTATUS Status; 
  unsigned int v6; 
  struct _IO_STATUS_BLOCK IoStatusBlock; 
  char FileInformation; 
  IoStatusBlock = 0i64;
  v2 = IoSetThreadHardErrorMode(0);
  v3 = *(VOID **)a1;
  FileInformation = 1;
  v4 = v2;
  Status = ZwSetInformationFile(v3, &IoStatusBlock, &FileInformation, 1ui64, FileDispositionInformation);
  v6 = 0;
  if( Status == 259 )
  {
    KeWaitForSingleObject((PVOID)(*(_QWORD *)(a1 + 8) + 152i64), Executive, 0, 0, 0i64);
    Status = IoStatusBlock.Status;
  }
  if( Status < 0 )
    v6 = Status;
  IoSetThreadHardErrorMode(v4);
  return v6;
}

Referenced by:

SmKmStoreFileCreate
SmKmStoreFileCreateForIoType
SmcCacheCleanup