IopInitCrashDumpRegCallback

NTSTATUS __stdcall IopInitCrashDumpRegCallback(
        PWCHAR ValueName,
        UINT64 ValueType,
        PVOID ValueData,
        UINT64 ValueLength,
        PVOID Context,
        PVOID EntryContext){
  _BYTE *v6; 
  INT64 v7; 
  UINT64 FileAttributes; 
  UINT64 ShareAccess; 
  UINT64 Disposition; 
  UINT64 CreateOptions; 
  UINT64 v13; 
  UINT64 Options; 
  _UNICODE_STRING DestinationString; 
  _IO_STATUS_BLOCK IoStatusBlock; 
  _UNICODE_STRING PagingFileName; 
  _OBJECT_ATTRIBUTES ObjectAttributes; 
  void *FileHandle; 

  FileHandle = 0i64;
  *(&ObjectAttributes.Length + 1) = 0;
  *(&ObjectAttributes.Attributes + 1) = 0;
  v6 = EntryContext;
  DestinationString = 0i64;
  IoStatusBlock = 0i64;
  if( EntryContext )
  {
    if( !*(_BYTE *)EntryContext )
    {
      if( ValueData )
      {
        if( (_DWORD)ValueLength )
        {
          if( Context )
          {
            if( RtlInitUnicodeStringEx(&DestinationString, (WCHAR *)ValueData) >= 0 )
            {
              ObjectAttributes.RootDirectory = 0i64;
              LODWORD(Options) = 274;
              LODWORD(v13) = 0;
              LODWORD(CreateOptions) = 32776;
              LODWORD(Disposition) = 1;
              LODWORD(ShareAccess) = 2;
              LODWORD(FileAttributes) = 6;
              ObjectAttributes.Length = 48;
              ObjectAttributes.Attributes = 64;
              ObjectAttributes.ObjectName = &DestinationString;
              *(_OWORD *)&ObjectAttributes.SecurityDescriptor = 0i64;
              if( IoCreateFile(
                     &FileHandle,
                     0xC0100000ui64,
                     &ObjectAttributes,
                     &IoStatusBlock,
                     0i64,
                     FileAttributes,
                     ShareAccess,
                     Disposition,
                     CreateOptions,
                     0i64,
                     v13,
                     CreateFileTypeNone,
                     0i64,
                     Options) >= 0 )
              {
                ExAcquireResourceExclusiveLite((UINT64)&stru_140C452E0 + 6976, 1, v7);
                PagingFileName = DestinationString;
                if( IopInitializeCrashDump(FileHandle, &PagingFileName) )
                  *v6 = 1;
                ExReleaseResourceLite((PERESOURCE)((char *)&stru_140C452E0 + 6976));
                NtClose((UINT64)FileHandle);
              }
            }
          }
        }
      }
    }
  }
  return 0;
}

Referenced by:

No references.