34 if (
_strnicmp(ArcPath,
"ramdisk(0)", 10) == 0)
48 if (
_strnicmp(ArcPath,
"multi(0)disk(0)", 15) != 0)
59 *DriveNumber =
atoi(
p);
73 *DriveNumber =
atoi(
p) + 0x80;
87 *DriveNumber =
atoi(
p) + 0x80;
130 if (
_strnicmp(ArcPath,
"ramdisk(0)", 10) == 0)
138 else if (
sscanf(ArcPath,
"scsi(%lu)disk(%lu)rdisk(%lu)partition(%lu)",
x,
y,
z, Partition) == 4)
144 else if (
sscanf(ArcPath,
"scsi(%lu)cdrom(%lu)fdisk(%lu)",
x,
y,
z) == 3)
151 else if (
sscanf(ArcPath,
"multi(%lu)disk(%lu)rdisk(%lu)partition(%lu)",
x,
y,
z, Partition) == 4)
157 else if (
sscanf(ArcPath,
"multi(%lu)disk(%lu)cdrom(%lu)",
x,
y,
z) == 3)
164 else if (
sscanf(ArcPath,
"multi(%lu)disk(%lu)fdisk(%lu)",
x,
y,
z) == 3)
179 strcpy(ArcPath,
"multi(0)disk(0)");
187 sprintf(tmp,
"fdisk(%d)", (
int) Disk);
196 sprintf(tmp,
"rdisk(%d)partition(%d)", (
int) (Disk - 0x80), (
int) Partition);
200 if (SystemFolder[0] ==
'\\' || SystemFolder[0] ==
'/')
202 strcat(ArcPath, SystemFolder);
207 strcat(ArcPath, SystemFolder);
212UCHAR ConvertArcNameToBiosDriveNumber(
PCHAR ArcPath)
215 UCHAR DriveNumber = 0;
217 if (
_strnicmp(ArcPath,
"multi(0)disk(0)", 15) != 0)
228 DriveNumber =
atoi(
p);
237 DriveNumber =
atoi(
p) + 0x80;
PRTL_UNICODE_STRING_BUFFER Path
char * strchr(const char *String, int ch)
BOOLEAN DissectArcPath(IN PCSTR ArcPath, OUT PCSTR *Path OPTIONAL, OUT PUCHAR DriveNumber, OUT PULONG PartitionNumber)
BOOLEAN DissectArcPath2(IN PCSTR ArcPath, OUT PULONG x, OUT PULONG y, OUT PULONG z, OUT PULONG Partition, OUT PULONG PathSyntax)
VOID ConstructArcPath(PCHAR ArcPath, PCHAR SystemFolder, UCHAR Disk, ULONG Partition)
#define _strnicmp(_String1, _String2, _MaxCount)
GLint GLint GLint GLint GLint x
GLint GLint GLint GLint GLint GLint y
_Check_return_ _CRTIMP int __cdecl sscanf(_In_z_ const char *_Src, _In_z_ _Scanf_format_string_ const char *_Format,...)
_Check_return_ int __cdecl atoi(_In_z_ const char *_Str)
#define sprintf(buf, format,...)
PULONG MinorVersion OPTIONAL
_In_ ULONG _In_ ULONG PartitionNumber