mirror of
https://github.com/reactos/reactos.git
synced 2024-12-28 01:55:19 +00:00
[BLUE] Reformat and add missing success checks + DPRINTs on failure
This commit is contained in:
parent
64f46045af
commit
741c3c0022
1 changed files with 124 additions and 98 deletions
|
@ -33,8 +33,12 @@ ScrLoadFontTable(
|
|||
NTSTATUS Status = STATUS_SUCCESS;
|
||||
|
||||
FontBitfield = (PUCHAR)ExAllocatePoolWithTag(NonPagedPool, 2048, TAG_BLUE);
|
||||
if (FontBitfield)
|
||||
if (FontBitfield == NULL)
|
||||
{
|
||||
DPRINT1("ExAllocatePoolWithTag failed\n");
|
||||
return;
|
||||
}
|
||||
|
||||
/* open bit plane for font table access */
|
||||
OpenBitPlane();
|
||||
|
||||
|
@ -44,14 +48,19 @@ ScrLoadFontTable(
|
|||
|
||||
Status = ExtractFont(CodePage, FontBitfield);
|
||||
if (NT_SUCCESS(Status))
|
||||
{
|
||||
LoadFont(Bitplane, FontBitfield);
|
||||
}
|
||||
else
|
||||
{
|
||||
DPRINT1("ExtractFont failed with Status 0x%lx\n", Status);
|
||||
}
|
||||
|
||||
MmUnmapIoSpace(Bitplane, 0xFFFF);
|
||||
ExFreePool(FontBitfield);
|
||||
|
||||
/* close bit plane */
|
||||
CloseBitPlane();
|
||||
}
|
||||
}
|
||||
|
||||
/* PRIVATE FUNCTIONS *********************************************************/
|
||||
|
@ -93,7 +102,10 @@ ExtractFont(
|
|||
&ObjectAttributes);
|
||||
|
||||
if (!NT_SUCCESS(Status))
|
||||
return(Status);
|
||||
{
|
||||
DPRINT1("ZwOpenSymbolicLinkObject failed with Status 0x%lx\n", Status);
|
||||
return Status;
|
||||
}
|
||||
|
||||
SourceName.Length = 0;
|
||||
SourceName.MaximumLength = MAX_PATH * sizeof(WCHAR);
|
||||
|
@ -104,7 +116,19 @@ ExtractFont(
|
|||
NULL);
|
||||
ZwClose(Handle);
|
||||
|
||||
if (!NT_SUCCESS(Status))
|
||||
{
|
||||
DPRINT1("ZwQuerySymbolicLinkObject failed with Status 0x%lx\n", Status);
|
||||
return Status;
|
||||
}
|
||||
|
||||
Status = RtlAppendUnicodeToString(&SourceName, L"\\vgafonts.cab");
|
||||
if (!NT_SUCCESS(Status))
|
||||
{
|
||||
DPRINT1("RtlAppendUnicodeToString failed with Status 0x%lx\n", Status);
|
||||
return Status;
|
||||
}
|
||||
|
||||
InitializeObjectAttributes(&ObjectAttributes,
|
||||
&SourceName,
|
||||
OBJ_CASE_INSENSITIVE | OBJ_KERNEL_HANDLE,
|
||||
|
@ -125,8 +149,12 @@ ExtractFont(
|
|||
|
||||
ByteOffset.LowPart = ByteOffset.HighPart = 0;
|
||||
|
||||
if (NT_SUCCESS(Status))
|
||||
if (!NT_SUCCESS(Status))
|
||||
{
|
||||
DPRINT1("Error: Cannot open vgafonts.cab (0x%lx)\n", Status);
|
||||
return Status;
|
||||
}
|
||||
|
||||
Status = ZwReadFile(Handle,
|
||||
NULL,
|
||||
NULL,
|
||||
|
@ -137,10 +165,19 @@ ExtractFont(
|
|||
&ByteOffset,
|
||||
NULL);
|
||||
|
||||
if (NT_SUCCESS(Status))
|
||||
if (!NT_SUCCESS(Status))
|
||||
{
|
||||
if (CabFileHeader.Signature == CAB_SIGNATURE)
|
||||
DPRINT1("Error: Cannot read from file (0x%lx)\n", Status);
|
||||
goto Exit;
|
||||
}
|
||||
|
||||
if (CabFileHeader.Signature != CAB_SIGNATURE)
|
||||
{
|
||||
DPRINT1("Error: CAB signature is missing!\n");
|
||||
Status = STATUS_UNSUCCESSFUL;
|
||||
goto Exit;
|
||||
}
|
||||
|
||||
// We have a valid CAB file!
|
||||
// Read the file table now and decrement the file count on every file. When it's zero, we read the complete table.
|
||||
ByteOffset.LowPart = CabFileHeader.FileTableOffset;
|
||||
|
@ -208,26 +245,15 @@ ExtractFont(
|
|||
2048,
|
||||
&ByteOffset,
|
||||
NULL);
|
||||
ZwClose(Handle);
|
||||
return STATUS_SUCCESS;
|
||||
}
|
||||
else
|
||||
if (!NT_SUCCESS(Status))
|
||||
{
|
||||
DPRINT1("Error: CAB signature is missing!\n");
|
||||
Status = STATUS_UNSUCCESSFUL;
|
||||
DPRINT1("ZwReadFile failed with Status 0x%lx\n", Status);
|
||||
}
|
||||
}
|
||||
else
|
||||
DPRINT1("Error: Cannot read from file\n");
|
||||
|
||||
Exit:
|
||||
|
||||
ZwClose(Handle);
|
||||
return Status;
|
||||
}
|
||||
else
|
||||
{
|
||||
DPRINT1("Error: Cannot open vgafonts.cab\n");
|
||||
return Status;
|
||||
}
|
||||
}
|
||||
|
||||
/* Font-load specific funcs */
|
||||
|
|
Loading…
Reference in a new issue