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);
return(Status);
/* Open the keyboard */
- RtlInitUnicodeString(&Name,
- L"\\??\\Keyboard");
InitializeObjectAttributes(&ObjectAttributes,
- &Name,
+ &KeyboardName,
0,
NULL,
NULL);
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;
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)
if (!NT_SUCCESS(Status))
{
DPRINT("ConnectPortDriver() failed with status 0x%08lx\n", Status);
- ObDereferenceObject(Fdo);
goto cleanup;
}
Fdo->Flags &= ~DO_DEVICE_INITIALIZING;