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

    • Type: Bug
    • Status: Resolved
    • Priority: Major
    • Resolution: Duplicate
    • Fix Version/s: None
    • Component/s: USB
    • Labels:

      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

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

                Dates

                • Created:
                  Updated:
                  Resolved: