PpLastGoodDeleteFilesCallback

NTSTATUS __stdcall PpLastGoodDeleteFilesCallback(
        _UNICODE_STRING *FullPathName,
        _UNICODE_STRING *FileName,
        UINT64 FileAttributes,
        VOID *Context,
        INT64 a5,
        INT64 a6,
        INT64 a7){
  char v7; 
  NTSTATUS result; 
  INT64 ShareAccess; 
  UINT64 ShareAccessb; 
  UINT64 ShareAccessa; 
  INT64 OpenOptions; 
  UINT64 OpenOptionsa; 
  _IO_STATUS_BLOCK IoStatusBlock; 
  _OBJECT_ATTRIBUTES ObjectAttributes; 
  VOID *FileHandle; 
  INT8 FileInformation; 

  *(&ObjectAttributes.Length + 1) = 0;
  memset(&ObjectAttributes.Attributes + 1, 0, 20);
  v7 = FileAttributes;
  FileHandle = 0i64;
  IopFileUtilClearAttributes(
    FullPathName,
    (UINT64)FileName,
    FileAttributes,
    (INT64)Context,
    ShareAccess,
    OpenOptions,
    0i64,
    0i64);
  ObjectAttributes.RootDirectory = 0i64;
  ObjectAttributes.Length = 48;
  ObjectAttributes.Attributes = 64;
  ObjectAttributes.ObjectName = FullPathName;
  LODWORD(OpenOptionsa) = (v7 & 0x10) != 0 ? 2113537 : 2113600;
  LODWORD(ShareAccessb) = 7;
  result = ZwOpenFile(&FileHandle, 0x10080ui64, &ObjectAttributes, &IoStatusBlock, ShareAccessb, OpenOptionsa);
  if( result >= 0 )
  {
    FileInformation = 1;
    LODWORD(ShareAccessa) = 13;
    ZwSetInformationFile((UINT64)FileHandle, (UINT64)&IoStatusBlock, &FileInformation, 1ui64, ShareAccessa);
    ZwClose((_HANDLE)FileHandle);
    return 0;
  }
  return result;
}

Referenced by:

No references.