Cxbx-reloaded: IoCreateSymbolicLink: "Could not map" error (in Avalaunch)

Created on 21 Dec 2016  路  9Comments  路  Source: Cxbx-Reloaded/Cxbx-Reloaded

Testing various 3rd party dash files, keep causing this error. there is the tail of the krnl log:

EmuMain : Linked "\??\t:" to "\Device\Harddisk0\Partition1\TDATA\080299ff" (residing at "C:\Users\Biatu\AppData\Roaming\Cxbx-Reloaded\\EmuDisk\Partition1\TDATA\080299ff")
EmuKrnlPs.cpp (0xE68): IoCreateSymbolicLink returns 0
EmuKrnlPs.cpp (0xE68): IoDeleteSymbolicLink(
   SymbolicLinkName          : 0x0F76EC00 -> PSTRING {
   .Length: 6
   .MaximumLength: 7
   .Buffer: \??\W:}
);
EmuKrnlPs.cpp (0xE68): IoDeleteSymbolicLink returns -1073741772
EmuKrnlPs.cpp (0xE68): IoCreateSymbolicLink(
   SymbolicLinkName          : 0x0F76EBF0 -> PSTRING {
   .Length: 6
   .MaximumLength: 7
   .Buffer: \??\W:}
   DeviceName                : 0x0F76EBF8 -> PSTRING {
   .Length: 52
   .MaximumLength: 53
   .Buffer: C:\C:\Users\Biatu\Desktop\Emuz\Cxbx\Avalaunch.0.49.3}
);
EmuMain (0xE68): Recieved Fatal Message:

* Could not map C:\C:\Users\Biatu\Desktop\Emuz\Cxbx\Avalaunch.0.49.3

Originally had this running on a Ramdisk at the root of the drive cause I though it was a path length issue, but this was not the case as I got the same error.

bug file-system

All 9 comments

This I saw too.

For now, try copying the dashboard filles to C:\Users\Biatu\AppData\Roaming\Cxbx-Reloaded\EmuDisk\partition2\

What version of Cxbx-Reloaded are you testing with? Can you post the version string that appears in the title bar?

It looks like something is still a little weird with our file IO code, the buffer being prefixed with C:\ twice just doesn't seem right

Let's wait for a pull of striker's file handling changes, and look into this again after that.

@LukeUsher,
The version is fresh off the git, af663c8-Trace (Dec 20t 2016).
And the C:\ at the beginning is there even when on another drive. eg; C:\B:......

My file information conversion changes won't fix that. The issue here is that Avalaunch uses the value of XeImageFileName from the kernel thunk table to figure out the path where the xbe file is,

If you look at the top of the log file, there should be a line that looks like this:

EmuMain : XeImageFileName = C:\D:\Xbox apps\Avalaunch\avalaunch.xbe

So clearly the issue here is that XeImageFileName is incorrect. See my latest commit for a fix.

Another note is that it does not just happen with that Dash it seems to happen to various other dashes and homebrews such as: xMoG(MAZE OF GALIOUS), VectoroidsX, SuperTransball2X, StarFighterX, etc.

This D:\timidity.cfg shows up all the time.

EmuKrnlPs.cpp (0x496C): RtlInitAnsiString(
 OUT DestinationString       : 0xF1EF624
   SourceString              : D:\timidity.cfg
);
EmuKrnlPs.cpp (0x496C): NtCreateFile forwarding to "IoCreateFile"...
EmuKrnlPs.cpp (0x496C): IoCreateFile(
 OUT FileHandle              : 0xF1EF62C
   DesiredAccess             : 80100080
   ObjectAttributes          : 0x0F1EF610 -> POBJECT_ATTRIBUTES {
   .RootDirectory: FFFFFFFD
   .ObjectName: 0x0F1EF624 -> PSTRING {
   .Length: F
   .MaximumLength: 10
   .Buffer: D:\timidity.cfg}
   .Attributes: 40}
 OUT IoStatusBlock           : 0xF1EF61C
   AllocationSize            : 0x00000000
   FileAttributes            : 80
   ShareAccess               : 3
   Disposition               : (CREATE_DISPOSITION) FILE_OPEN = 0x1
   CreateOptions             : (CREATE_OPTION) FILE_SYNCHRONOUS_IO_NONALERT|FILE_NON_DIRECTORY_FILE|FILE_NON_DIRECTORY_FILE = 0x60
   Options                   : 0
);
EmuKrnl : IoCreateFile Corrected path...
  Org:"D:\timidity.cfg"
  New:"$XbePath\timidity.cfg"
EmuKrnl (0x496C): IoCreateFile Failed! (0xC0000034) //STATUS_OBJECT_NAME_NOT_FOUND
EmuKrnlPs.cpp (0x496C): IoCreateFile returns -1073741772
EmuKrnlPs.cpp (0x496C): RtlNtStatusToDosError(
   Status                    : -1073741772
);
EmuKrnlPs.cpp (0x496C): RtlNtStatusToDosError returns 2
EmuKrnlPs.cpp (0x496C): RtlInitAnsiString(
 OUT DestinationString       : 0xF1EF62C
   SourceString              : D:\TIMIDITY\D:\timidity.cfg
);
EmuKrnlPs.cpp (0x496C): NtCreateFile forwarding to "IoCreateFile"...
EmuKrnlPs.cpp (0x496C): IoCreateFile(
 OUT FileHandle              : 0xF1EF634
   DesiredAccess             : 80100080
   ObjectAttributes          : 0x0F1EF618 -> POBJECT_ATTRIBUTES {
   .RootDirectory: FFFFFFFD
   .ObjectName: 0x0F1EF62C -> PSTRING {
   .Length: 1B
   .MaximumLength: 1C
   .Buffer: D:\TIMIDITY\D:\timidity.cfg}
   .Attributes: 40}
 OUT IoStatusBlock           : 0xF1EF624
   AllocationSize            : 0x00000000
   FileAttributes            : 80
   ShareAccess               : 3
   Disposition               : (CREATE_DISPOSITION) FILE_OPEN = 0x1
   CreateOptions             : (CREATE_OPTION) FILE_SYNCHRONOUS_IO_NONALERT|FILE_NON_DIRECTORY_FILE|FILE_NON_DIRECTORY_FILE = 0x60
   Options                   : 0
);
EmuKrnl : IoCreateFile Corrected path...
  Org:"D:\TIMIDITY\D:\timidity.cfg"
  New:"$XbePath\TIMIDITY\D:\timidity.cfg"
EmuKrnl (0x496C): IoCreateFile Failed! (0xC0000033) //STATUS_OBJECT_NAME_INVALID
EmuKrnlPs.cpp (0x496C): IoCreateFile returns -1073741773
EmuKrnlPs.cpp (0x496C): RtlNtStatusToDosError(
   Status                    : -1073741773
);
EmuKrnlPs.cpp (0x496C): RtlNtStatusToDosError returns 123

Logging off source filename is not correct either, I'll look into that when I can find the time

Logging of source filename is fixed. The rest of this issue seems still to apply.

AVALaunch works now, so this is no longer an issue

Was this page helpful?
0 / 5 - 0 ratings