mirror of
https://github.com/reactos/reactos.git
synced 2025-08-05 02:25:40 +00:00
[ntoskrnl] Better fix for correct display of loaded drivers
svn path=/trunk/; revision=46200
This commit is contained in:
parent
ee46cddad7
commit
f9d9302445
1 changed files with 37 additions and 7 deletions
|
@ -149,6 +149,39 @@ IopGetDriverObject(
|
|||
return STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
/*
|
||||
* RETURNS
|
||||
* TRUE if String2 contains String1 as a suffix.
|
||||
*/
|
||||
BOOLEAN
|
||||
NTAPI
|
||||
IopSuffixUnicodeString(
|
||||
IN PCUNICODE_STRING String1,
|
||||
IN PCUNICODE_STRING String2)
|
||||
{
|
||||
PWCHAR pc1;
|
||||
PWCHAR pc2;
|
||||
ULONG Length;
|
||||
|
||||
if (String2->Length < String1->Length)
|
||||
return FALSE;
|
||||
|
||||
Length = String1->Length / 2;
|
||||
pc1 = String1->Buffer;
|
||||
pc2 = &String2->Buffer[String2->Length / sizeof(WCHAR) - Length];
|
||||
|
||||
if (pc1 && pc2)
|
||||
{
|
||||
while (Length--)
|
||||
{
|
||||
if( *pc1++ != *pc2++ )
|
||||
return FALSE;
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
/*
|
||||
* IopDisplayLoadingMessage
|
||||
*
|
||||
|
@ -161,19 +194,16 @@ INIT_FUNCTION
|
|||
IopDisplayLoadingMessage(PUNICODE_STRING ServiceName)
|
||||
{
|
||||
CHAR TextBuffer[256];
|
||||
UNICODE_STRING DotSys = RTL_CONSTANT_STRING(L".SYS");
|
||||
|
||||
if (ExpInTextModeSetup) return;
|
||||
RtlUpcaseUnicodeString(ServiceName, ServiceName, FALSE);
|
||||
snprintf(TextBuffer, sizeof(TextBuffer),
|
||||
"%s%s%s\\%wZ",
|
||||
"%s%sSystem32\\Drivers\\%wZ%s\n",
|
||||
KeLoaderBlock->ArcBootDeviceName,
|
||||
KeLoaderBlock->NtBootPathName,
|
||||
"System32\\Drivers",
|
||||
ServiceName);
|
||||
if (!strstr(TextBuffer, ".sys"))
|
||||
strcat(TextBuffer, ".sys\n");
|
||||
else
|
||||
strcat(TextBuffer, "\n");
|
||||
ServiceName,
|
||||
IopSuffixUnicodeString(&DotSys, ServiceName) ? "" : ".SYS");
|
||||
HalDisplayString(TextBuffer);
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue