Really fix the build, but make bootcd does not work yet.
[reactos.git] / reactos / ntoskrnl / inbv / inbv.c
index 2e88896..815b546 100755 (executable)
@@ -4,18 +4,21 @@
  * PROJECT:        ReactOS kernel
  * FILE:           ntoskrnl/inbv/inbv.c
  * PURPOSE:        Boot video support
- * 
+ *
  * PROGRAMMERS:    Casper S. Hornstrup (chorns@users.sourceforge.net)
  */
 
 /* INCLUDES ******************************************************************/
 
 #include <ntoskrnl.h>
-#include <ntos/bootvid.h>
-#include <ddk/ntbootvid.h>
+#include "../../drivers/base/bootvid/ntbootvid.h"
 #define NDEBUG
 #include <internal/debug.h>
 
+#if defined (ALLOC_PRAGMA)
+#pragma alloc_text(INIT, InbvEnableBootDriver)
+#endif
+
 
 /* GLOBALS *******************************************************************/
 
@@ -37,9 +40,8 @@ InbvCheckBootVid(VOID)
     {
       NTSTATUS Status;
       OBJECT_ATTRIBUTES ObjectAttributes;
-      UNICODE_STRING BootVidName;
+      UNICODE_STRING BootVidName = RTL_CONSTANT_STRING(L"\\Device\\BootVid");
 
-      RtlRosInitUnicodeStringFromLiteral(&BootVidName, L"\\Device\\BootVid");
       InitializeObjectAttributes(&ObjectAttributes,
                                 &BootVidName,
                                 0,
@@ -59,13 +61,13 @@ InbvCheckBootVid(VOID)
   return(STATUS_SUCCESS);
 }
 
+
 VOID
 STDCALL
 InbvAcquireDisplayOwnership(VOID)
 {
 }
 
-
 BOOLEAN
 STDCALL
 InbvCheckDisplayOwnership(VOID)
@@ -73,12 +75,22 @@ InbvCheckDisplayOwnership(VOID)
   return FALSE;
 }
 
-
 BOOLEAN
 STDCALL
 InbvDisplayString(IN PCHAR String)
 {
-  return FALSE;
+    /* Call Bootvid (we don't support bootvid for now) 
+     * vidDisplayString(String);
+     * so instead, we'll fall-back to HAL
+     */
+     HalDisplayString(String);
+     
+     /* Call Headless (We don't support headless for now) 
+     HeadlessDispatch(DISPLAY_STRING);
+     */
+     
+     /* Return success */
+     return TRUE;
 }
 
 BOOLEAN
@@ -88,6 +100,7 @@ InbvResetDisplayParameters(ULONG SizeX, ULONG SizeY)
   return(InbvResetDisplay());
 }
 
+
 VOID
 STDCALL INIT_FUNCTION
 InbvEnableBootDriver(IN BOOLEAN Enable)
@@ -106,7 +119,7 @@ InbvEnableBootDriver(IN BOOLEAN Enable)
       /* Notify the hal we will acquire the display. */
       HalAcquireDisplayOwnership(InbvResetDisplayParameters);
 
-      Status = NtDeviceIoControlFile(BootVidDevice,
+      Status = ZwDeviceIoControlFile(BootVidDevice,
                                     NULL,
                                     NULL,
                                     NULL,
@@ -125,7 +138,7 @@ InbvEnableBootDriver(IN BOOLEAN Enable)
     }
   else
     {
-      Status = NtDeviceIoControlFile(BootVidDevice,
+      Status = ZwDeviceIoControlFile(BootVidDevice,
                                     NULL,
                                     NULL,
                                     NULL,
@@ -142,12 +155,13 @@ InbvEnableBootDriver(IN BOOLEAN Enable)
       BootVidDriverInstalled = FALSE;
       /* Notify the hal we have released the display. */
       HalReleaseDisplayOwnership();
-
-      NtClose(BootVidDevice);
-      BootVidDevice = NULL;
     }
+
+  ZwClose(BootVidDevice);
+  BootVidDevice = NULL;
 }
 
+
 BOOLEAN
 STDCALL
 InbvEnableDisplayString(IN BOOLEAN Enable)
@@ -221,13 +235,11 @@ NTSTATUS
 STDCALL
 NtDisplayString(IN PUNICODE_STRING DisplayString)
 {
-   ANSI_STRING AnsiString;
-
-   RtlUnicodeStringToAnsiString (&AnsiString, DisplayString, TRUE);
-
-   HalDisplayString (AnsiString.Buffer);
+  OEM_STRING OemString;
 
-   RtlFreeAnsiString (&AnsiString);
+  RtlUnicodeStringToOemString(&OemString, DisplayString, TRUE);
+  HalDisplayString(OemString.Buffer);
+  RtlFreeOemString(&OemString);
 
-   return(STATUS_SUCCESS);
+  return STATUS_SUCCESS;
 }