Inform HAL about the switch to graphics mode as late as possible. Fixes bug 880.
[reactos.git] / reactos / drivers / video / videoprt / videoprt.h
index 3a5df1c..a21f752 100644 (file)
 #ifndef VIDEOPRT_H
 #define VIDEOPRT_H
 
+#include <stdio.h>
+#include <ddk/ntddk.h>
 #include <ddk/miniport.h>
 #include <ddk/video.h>
 #include <ddk/ntddvdeo.h>
-#include <ddk/ntapi.h>
 #include <ddk/ntagp.h>
+#include <ddk/ntifs.h>
+#include <ndk/ntndk.h>
+#include <reactos/helper.h>
+
 #define NDEBUG
 #include <debug.h>
 
-int swprintf(wchar_t *buf, const wchar_t *fmt, ...);
-int vsprintf(char *buf, const char *fmt, va_list args);
-
-BOOLEAN STDCALL
-HalDisableSystemInterrupt(ULONG Vector,
-  KIRQL Irql);
-  
-BOOLEAN STDCALL
-HalEnableSystemInterrupt(ULONG Vector,
-  KIRQL Irql,
-  KINTERRUPT_MODE InterruptMode);
-
-PIMAGE_NT_HEADERS STDCALL RtlImageNtHeader(IN PVOID BaseAddress);
-
 #define TAG_VIDEO_PORT  TAG('V', 'I', 'D', 'P')
 
 typedef struct _VIDEO_PORT_ADDRESS_MAPPING
@@ -84,6 +75,7 @@ typedef struct _VIDEO_PORT_DRIVER_EXTENSION
 typedef struct _VIDEO_PORT_DEVICE_EXTENSTION
 {
    ULONG DeviceNumber;
+   PDRIVER_OBJECT DriverObject;
    PDEVICE_OBJECT PhysicalDeviceObject;
    PDEVICE_OBJECT FunctionalDeviceObject;
    PDEVICE_OBJECT NextDeviceObject;
@@ -94,7 +86,7 @@ typedef struct _VIDEO_PORT_DEVICE_EXTENSTION
    ULONG InterruptVector;
    ULONG InterruptLevel;
    BOOLEAN InterruptShared;
-   ULONG AdapterInterfaceType;
+   INTERFACE_TYPE AdapterInterfaceType;
    ULONG SystemIoBusNumber;
    ULONG SystemIoSlotNumber;
    LIST_ENTRY AddressMappingListHead;
@@ -114,61 +106,66 @@ typedef struct _VIDEO_PORT_DEVICE_EXTENSTION
 
 /* agp.c */
 
-NTSTATUS STDCALL
+NTSTATUS NTAPI
 IntAgpGetInterface(
    IN PVOID HwDeviceExtension,
    IN OUT PINTERFACE Interface);
 
 /* dispatch.c */
 
-NTSTATUS STDCALL
+NTSTATUS NTAPI
 IntVideoPortAddDevice(
    IN PDRIVER_OBJECT DriverObject,
    IN PDEVICE_OBJECT PhysicalDeviceObject);
 
-NTSTATUS STDCALL
+NTSTATUS NTAPI
 IntVideoPortDispatchOpen(
    IN PDEVICE_OBJECT DeviceObject,
    IN PIRP Irp);
 
-NTSTATUS STDCALL
+NTSTATUS NTAPI
 IntVideoPortDispatchClose(
    IN PDEVICE_OBJECT DeviceObject,
    IN PIRP Irp);
 
-NTSTATUS STDCALL
+NTSTATUS NTAPI
 IntVideoPortDispatchCleanup(
    IN PDEVICE_OBJECT DeviceObject,
    IN PIRP Irp);
 
-NTSTATUS STDCALL
+NTSTATUS NTAPI
 IntVideoPortDispatchDeviceControl(
    IN PDEVICE_OBJECT DeviceObject,
    IN PIRP Irp);
 
-NTSTATUS STDCALL
+NTSTATUS NTAPI
 IntVideoPortDispatchPnp(
    IN PDEVICE_OBJECT DeviceObject,
    IN PIRP Irp);
 
-NTSTATUS STDCALL
+NTSTATUS NTAPI
 IntVideoPortDispatchPower(
    IN PDEVICE_OBJECT DeviceObject,
    IN PIRP Irp);
 
-VOID STDCALL
+NTSTATUS NTAPI
+IntVideoPortDispatchWrite(
+   IN PDEVICE_OBJECT DeviceObject,
+   IN PIRP Irp);
+
+VOID NTAPI
 IntVideoPortUnload(PDRIVER_OBJECT DriverObject);
 
 /* timer.c */
 
-BOOLEAN STDCALL
+BOOLEAN NTAPI
 IntVideoPortSetupTimer(
    IN PDEVICE_OBJECT DeviceObject,
    IN PVIDEO_PORT_DRIVER_EXTENSION DriverExtension);
 
 /* interrupt.c */
 
-BOOLEAN STDCALL
+BOOLEAN NTAPI
 IntVideoPortSetupInterrupt(
    IN PDEVICE_OBJECT DeviceObject,
    IN PVIDEO_PORT_DRIVER_EXTENSION DriverExtension,
@@ -176,7 +173,7 @@ IntVideoPortSetupInterrupt(
 
 /* resource.c */
 
-NTSTATUS STDCALL
+NTSTATUS NTAPI
 IntVideoPortMapPhysicalMemory(
    IN HANDLE Process,
    IN PHYSICAL_ADDRESS PhysicalAddress,
@@ -187,32 +184,32 @@ IntVideoPortMapPhysicalMemory(
 /* videoprt.c */
 
 extern ULONG CsrssInitialized;
-extern PEPROCESS Csrss;
+extern PKPROCESS Csrss;
 
-VP_STATUS STDCALL
+VP_STATUS NTAPI
 VideoPortEnumerateChildren(
    IN PVOID HwDeviceExtension,
    IN PVOID Reserved);
 
-PVOID STDCALL
+PVOID NTAPI
 VideoPortGetProcAddress(
    IN PVOID HwDeviceExtension,
    IN PUCHAR FunctionName);
 
-VOID FASTCALL 
-IntAttachToCSRSS(PEPROCESS *CallingProcess, PEPROCESS *PrevAttachedProcess);
+VOID FASTCALL
+IntAttachToCSRSS(PKPROCESS *CallingProcess, PKAPC_STATE ApcState);
 
-VOID FASTCALL 
-IntDetachFromCSRSS(PEPROCESS *CallingProcess, PEPROCESS *PrevAttachedProcess);
+VOID FASTCALL
+IntDetachFromCSRSS(PKPROCESS *CallingProcess, PKAPC_STATE ApcState);
 
-NTSTATUS STDCALL
+NTSTATUS NTAPI
 IntVideoPortCreateAdapterDeviceObject(
    IN PDRIVER_OBJECT DriverObject,
    IN PVIDEO_PORT_DRIVER_EXTENSION DriverExtension,
    IN PDEVICE_OBJECT PhysicalDeviceObject  OPTIONAL,
    OUT PDEVICE_OBJECT *DeviceObject  OPTIONAL);
 
-NTSTATUS STDCALL
+NTSTATUS NTAPI
 IntVideoPortFindAdapter(
    IN PDRIVER_OBJECT DriverObject,
    IN PVIDEO_PORT_DRIVER_EXTENSION DriverExtension,
@@ -220,20 +217,20 @@ IntVideoPortFindAdapter(
 
 /* int10.c */
 
-VP_STATUS STDCALL
+VP_STATUS NTAPI
 IntInt10AllocateBuffer(
    IN PVOID Context,
    OUT PUSHORT Seg,
    OUT PUSHORT Off,
    IN OUT PULONG Length);
 
-VP_STATUS STDCALL
+VP_STATUS NTAPI
 IntInt10FreeBuffer(
    IN PVOID Context,
    IN USHORT Seg,
    IN USHORT Off);
 
-VP_STATUS STDCALL
+VP_STATUS NTAPI
 IntInt10ReadMemory(
    IN PVOID Context,
    IN USHORT Seg,
@@ -241,7 +238,7 @@ IntInt10ReadMemory(
    OUT PVOID Buffer,
    IN ULONG Length);
 
-VP_STATUS STDCALL
+VP_STATUS NTAPI
 IntInt10WriteMemory(
    IN PVOID Context,
    IN USHORT Seg,
@@ -249,12 +246,12 @@ IntInt10WriteMemory(
    IN PVOID Buffer,
    IN ULONG Length);
 
-VP_STATUS STDCALL
+VP_STATUS NTAPI
 IntInt10CallBios(
    IN PVOID Context,
    IN OUT PINT10_BIOS_ARGUMENTS BiosArguments);
 
-VP_STATUS STDCALL
+VP_STATUS NTAPI
 VideoPortInt10(
    IN PVOID HwDeviceExtension,
    IN PVIDEO_X86_BIOS_ARGUMENTS BiosArguments);