Uploaded image for project: 'Core ReactOS'
  1. Core ReactOS
  2. CORE-8833

IopMarkBootPartition failed to open device when deactivating HD in BIOS and booting from USB key

    XMLWordPrintable

Details

    • Bug
    • Resolution: Duplicate
    • Major
    • None
    • Drivers: USB

    Description

      Because I have just a SATA HD in my box.
      And that it hang while loading Disk.sys (I believe).
      I deactivated my SATA controller in my BIOS prior to boot with r65490 LiveCD "burn" on USB key with Rufus.

      Sorry I have no camera to take picture of Screen backtrace but most relevant info is:
      ntoskernel/io/iomgr.c:428 (IopMarkBootPartition)
      ntoskernel/io/iomgr.c:561 (IoInitSystem)
      Couldn't access memory at 0x0000EB20!

      Looking through the code I see that line 428 is the:

      KeBugCheckEx(INACCESSIBLE_BOOT_DEVICE,
                           (ULONG_PTR)&DeviceName,
                           Status,
                           0,
                           0);

      line in:

      BOOLEAN
      INIT_FUNCTION
      NTAPI
      IopMarkBootPartition(IN PLOADER_PARAMETER_BLOCK LoaderBlock)
      {
          OBJECT_ATTRIBUTES ObjectAttributes;
          STRING DeviceString;
          CHAR Buffer[256];
          UNICODE_STRING DeviceName;
          NTSTATUS Status;
          HANDLE FileHandle;
          IO_STATUS_BLOCK IoStatusBlock;
          PFILE_OBJECT FileObject;
       
          /* Build the ARC device name */
          sprintf(Buffer, "\\ArcName\\%s", LoaderBlock->ArcBootDeviceName);
          RtlInitAnsiString(&DeviceString, Buffer);
          Status = RtlAnsiStringToUnicodeString(&DeviceName, &DeviceString, TRUE);
          if (!NT_SUCCESS(Status)) return FALSE;
       
          /* Open it */
          InitializeObjectAttributes(&ObjectAttributes,
                                     &DeviceName,
                                     OBJ_CASE_INSENSITIVE,
                                     NULL,
                                     NULL);
          Status = ZwOpenFile(&FileHandle,
                              FILE_READ_ATTRIBUTES,
                              &ObjectAttributes,
                              &IoStatusBlock,
                              0,
                              FILE_NON_DIRECTORY_FILE);
          if (!NT_SUCCESS(Status))
          {
              /* Fail */
              KeBugCheckEx(INACCESSIBLE_BOOT_DEVICE,
                           (ULONG_PTR)&DeviceName,
                           Status,
                           0,
                           0);
          }

      Attachments

        Issue Links

          Activity

            People

              bug zilla Bug Zilla
              paul paul
              Votes:
              1 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: