if (!ntpath->Buffer) return FALSE; memcpy( ntpath->Buffer, dos_path, ntpath->MaximumLength ); ntpath->Buffer[1] = '?'; /* change \\?\ to \??\ */
}RtlGetFullPathName_U(dos_path, sizeof(local), local, file_part); return TRUE;
this is wrong as file_part must point into ntpath->Buffer, not into local, as your code does...
A+