4 * Copyright (C) 2002, 2003, 2004 ReactOS Team
6 * This library is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU Library General Public
8 * License as published by the Free Software Foundation; either
9 * version 2 of the License, or (at your option) any later version.
11 * This library is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 * Library General Public License for more details.
16 * You should have received a copy of the GNU Library General Public
17 * License along with this library; see the file COPYING.LIB.
18 * If not, write to the Free Software Foundation,
19 * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
21 * $Id: videoprt.h,v 1.7 2004/03/19 20:58:32 navaraf Exp $
27 #include <ddk/miniport.h>
28 #include <ddk/video.h>
29 #include <ddk/ntddvdeo.h>
30 #include <ddk/ntapi.h>
34 int swprintf(wchar_t *buf
, const wchar_t *fmt
, ...);
35 int vsprintf(char *buf
, const char *fmt
, va_list args
);
36 BOOLEAN STDCALL
HalDisableSystemInterrupt(ULONG Vector
, ULONG Unknown2
);
37 BOOLEAN STDCALL
HalEnableSystemInterrupt(ULONG Vector
, ULONG Unknown2
, ULONG Unknown3
);
38 PIMAGE_NT_HEADERS STDCALL
RtlImageNtHeader(IN PVOID BaseAddress
);
39 #define NtCurrentProcess() ((HANDLE)0xFFFFFFFF)
41 #define TAG_VIDEO_PORT TAG('V', 'I', 'D', 'P')
43 typedef struct _VIDEO_PORT_ADDRESS_MAPPING
48 PHYSICAL_ADDRESS IoAddress
;
49 ULONG SystemIoBusNumber
;
51 } VIDEO_PORT_ADDRESS_MAPPING
, *PVIDEO_PORT_ADDRESS_MAPPING
;
53 typedef struct _VIDEO_PORT_DRIVER_EXTENSION
55 VIDEO_HW_INITIALIZATION_DATA InitializationData
;
57 UNICODE_STRING RegistryPath
;
58 } VIDEO_PORT_DRIVER_EXTENSION
, *PVIDEO_PORT_DRIVER_EXTENSION
;
60 typedef struct _VIDEO_PORT_DEVICE_EXTENSTION
62 PDEVICE_OBJECT PhysicalDeviceObject
;
63 PDEVICE_OBJECT FunctionalDeviceObject
;
64 UNICODE_STRING RegistryPath
;
65 PKINTERRUPT InterruptObject
;
66 KSPIN_LOCK InterruptSpinLock
;
67 ULONG InterruptVector
;
69 ULONG AdapterInterfaceType
;
70 ULONG SystemIoBusNumber
;
71 ULONG SystemIoSlotNumber
;
72 LIST_ENTRY AddressMappingListHead
;
74 VIDEO_PORT_DRIVER_EXTENSION
*DriverExtension
;
75 CHAR MiniPortDeviceExtension
[1];
76 } VIDEO_PORT_DEVICE_EXTENSION
, *PVIDEO_PORT_DEVICE_EXTENSION
;
78 #define VIDEO_PORT_GET_DEVICE_EXTENSION(MiniportExtension) \
81 VIDEO_PORT_DEVICE_EXTENSION, \
82 MiniPortDeviceExtension)
87 IntVideoPortAddDevice(
88 IN PDRIVER_OBJECT DriverObject
,
89 IN PDEVICE_OBJECT PhysicalDeviceObject
);
92 IntVideoPortDispatchOpen(
93 IN PDEVICE_OBJECT DeviceObject
,
97 IntVideoPortDispatchClose(
98 IN PDEVICE_OBJECT DeviceObject
,
102 IntVideoPortDispatchCleanup(
103 IN PDEVICE_OBJECT DeviceObject
,
107 IntVideoPortDispatchDeviceControl(
108 IN PDEVICE_OBJECT DeviceObject
,
112 IntVideoPortDispatchPnp(
113 IN PDEVICE_OBJECT DeviceObject
,
117 IntVideoPortDispatchPower(
118 IN PDEVICE_OBJECT DeviceObject
,
122 IntVideoPortUnload(PDRIVER_OBJECT DriverObject
);
127 IntVideoPortSetupTimer(
128 IN PDEVICE_OBJECT DeviceObject
,
129 IN PVIDEO_PORT_DRIVER_EXTENSION DriverExtension
);
134 IntVideoPortSetupInterrupt(
135 IN PDEVICE_OBJECT DeviceObject
,
136 IN PVIDEO_PORT_DRIVER_EXTENSION DriverExtension
,
137 IN PVIDEO_PORT_CONFIG_INFO ConfigInfo
);
141 extern ULONG CsrssInitialized
;
142 extern PEPROCESS Csrss
;
145 VideoPortGetProcAddress(
146 IN PVOID HwDeviceExtension
,
147 IN PUCHAR FunctionName
);
150 IntAttachToCSRSS(PEPROCESS
*CallingProcess
, PEPROCESS
*PrevAttachedProcess
);
153 IntDetachFromCSRSS(PEPROCESS
*CallingProcess
, PEPROCESS
*PrevAttachedProcess
);
156 IntVideoPortFindAdapter(
157 IN PDRIVER_OBJECT DriverObject
,
158 IN PVIDEO_PORT_DRIVER_EXTENSION DriverExtension
,
159 IN PDEVICE_OBJECT PhysicalDeviceObject
);
164 IntInt10AllocateBuffer(
168 IN OUT PULONG Length
);
195 IN OUT PINT10_BIOS_ARGUMENTS BiosArguments
);
199 IN PVOID HwDeviceExtension
,
200 IN PVIDEO_X86_BIOS_ARGUMENTS BiosArguments
);
202 #endif /* VIDEOPRT_H */