mirror of
https://github.com/ApfelTeeSaft/reactos.git
synced 2026-08-31 12:23:31 +00:00
Don't dereference device objects if they were not referenced
Remove one hack from kbdclass svn path=/trunk/; revision=21708
This commit is contained in:
@@ -52,17 +52,16 @@ ConGetConsoleScreenBufferInfo(PCONSOLE_SCREEN_BUFFER_INFO ConsoleScreenBufferInf
|
||||
NTSTATUS
|
||||
ConAllocConsole(VOID)
|
||||
{
|
||||
UNICODE_STRING ScreenName = RTL_CONSTANT_STRING(L"\\??\\BlueScreen");
|
||||
UNICODE_STRING KeyboardName = RTL_CONSTANT_STRING(L"\\Device\\KeyboardClass0");
|
||||
OBJECT_ATTRIBUTES ObjectAttributes;
|
||||
IO_STATUS_BLOCK IoStatusBlock;
|
||||
UNICODE_STRING Name;
|
||||
NTSTATUS Status;
|
||||
CONSOLE_SCREEN_BUFFER_INFO csbi;
|
||||
|
||||
/* Open the screen */
|
||||
RtlInitUnicodeString(&Name,
|
||||
L"\\??\\BlueScreen");
|
||||
InitializeObjectAttributes(&ObjectAttributes,
|
||||
&Name,
|
||||
&ScreenName,
|
||||
0,
|
||||
NULL,
|
||||
NULL);
|
||||
@@ -76,10 +75,8 @@ ConAllocConsole(VOID)
|
||||
return(Status);
|
||||
|
||||
/* Open the keyboard */
|
||||
RtlInitUnicodeString(&Name,
|
||||
L"\\??\\Keyboard");
|
||||
InitializeObjectAttributes(&ObjectAttributes,
|
||||
&Name,
|
||||
&KeyboardName,
|
||||
0,
|
||||
NULL,
|
||||
NULL);
|
||||
|
||||
@@ -284,7 +284,6 @@ CreateClassDeviceObject(
|
||||
OUT PDEVICE_OBJECT *ClassDO OPTIONAL)
|
||||
{
|
||||
PCLASS_DRIVER_EXTENSION DriverExtension;
|
||||
UNICODE_STRING SymbolicLinkName = RTL_CONSTANT_STRING(L"\\??\\Keyboard");
|
||||
ULONG DeviceId = 0;
|
||||
ULONG PrefixLength;
|
||||
UNICODE_STRING DeviceNameU;
|
||||
@@ -374,10 +373,6 @@ cleanup:
|
||||
DriverExtension->RegistryPath.Buffer,
|
||||
DriverExtension->RegistryPath.MaximumLength);
|
||||
|
||||
/* HACK: 1st stage setup needs a keyboard to open it in user-mode
|
||||
* Create a link to user space... */
|
||||
IoCreateSymbolicLink(&SymbolicLinkName, &DeviceNameU);
|
||||
|
||||
ExFreePool(DeviceNameU.Buffer);
|
||||
|
||||
if (ClassDO)
|
||||
@@ -597,7 +592,6 @@ ClassAddDevice(
|
||||
if (!NT_SUCCESS(Status))
|
||||
{
|
||||
DPRINT("ConnectPortDriver() failed with status 0x%08lx\n", Status);
|
||||
ObDereferenceObject(Fdo);
|
||||
goto cleanup;
|
||||
}
|
||||
Fdo->Flags &= ~DO_DEVICE_INITIALIZING;
|
||||
|
||||
@@ -569,7 +569,6 @@ ClassAddDevice(
|
||||
if (!NT_SUCCESS(Status))
|
||||
{
|
||||
DPRINT("ConnectPortDriver() failed with status 0x%08lx\n", Status);
|
||||
ObDereferenceObject(Fdo);
|
||||
goto cleanup;
|
||||
}
|
||||
Fdo->Flags &= ~DO_DEVICE_INITIALIZING;
|
||||
|
||||
Reference in New Issue
Block a user