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:
Hervé Poussineau 2006-04-22 14:08:43 +00:00
parent d7c29a3b3f
commit 99ea202a07
3 changed files with 4 additions and 14 deletions

View file

@ -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);

View file

@ -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;

View file

@ -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;