NULL,
NULL))
{
+ /* Fail */
ConioUnlockScreenBuffer(Buff);
return STATUS_NO_MEMORY;
}
}
/* Wait until we un-pause the console */
- ConioUnlockScreenBuffer(Buff);
- return STATUS_PENDING;
+ Status = STATUS_PENDING;
}
-
- if(WriteConsoleRequest->Unicode)
+ else
{
- Length = WideCharToMultiByte(Console->OutputCodePage, 0,
- (PWCHAR)WriteConsoleRequest->Buffer,
- WriteConsoleRequest->NrCharactersToWrite,
- NULL, 0, NULL, NULL);
- Buffer = RtlAllocateHeap(GetProcessHeap(), 0, Length);
- if (Buffer)
+ if(WriteConsoleRequest->Unicode)
{
- WideCharToMultiByte(Console->OutputCodePage, 0,
- (PWCHAR)WriteConsoleRequest->Buffer,
- WriteConsoleRequest->NrCharactersToWrite,
- Buffer, Length, NULL, NULL);
+ Length = WideCharToMultiByte(Console->OutputCodePage, 0,
+ (PWCHAR)WriteConsoleRequest->Buffer,
+ WriteConsoleRequest->NrCharactersToWrite,
+ NULL, 0, NULL, NULL);
+ Buffer = RtlAllocateHeap(GetProcessHeap(), 0, Length);
+ if (Buffer)
+ {
+ WideCharToMultiByte(Console->OutputCodePage, 0,
+ (PWCHAR)WriteConsoleRequest->Buffer,
+ WriteConsoleRequest->NrCharactersToWrite,
+ Buffer, Length, NULL, NULL);
+ }
+ else
+ {
+ Status = STATUS_NO_MEMORY;
+ }
}
else
{
- Status = STATUS_NO_MEMORY;
+ Buffer = (PCHAR)WriteConsoleRequest->Buffer;
}
- }
- else
- {
- Buffer = (PCHAR)WriteConsoleRequest->Buffer;
- }
- if (Buffer)
- {
- if (NT_SUCCESS(Status))
+ if (Buffer)
{
- Status = ConioWriteConsole(Console, Buff, Buffer,
- WriteConsoleRequest->NrCharactersToWrite, TRUE);
if (NT_SUCCESS(Status))
{
- Written = WriteConsoleRequest->NrCharactersToWrite;
+ Status = ConioWriteConsole(Console, Buff, Buffer,
+ WriteConsoleRequest->NrCharactersToWrite, TRUE);
+ if (NT_SUCCESS(Status))
+ {
+ Written = WriteConsoleRequest->NrCharactersToWrite;
+ }
+ }
+ if (WriteConsoleRequest->Unicode)
+ {
+ RtlFreeHeap(GetProcessHeap(), 0, Buffer);
}
}
- if (WriteConsoleRequest->Unicode)
- {
- RtlFreeHeap(GetProcessHeap(), 0, Buffer);
- }
- }
- WriteConsoleRequest->NrCharactersWritten = Written;
+ WriteConsoleRequest->NrCharactersWritten = Written;
+ }
ConioUnlockScreenBuffer(Buff);
return Status;