#ifndef VIDEOPRT_H
#define VIDEOPRT_H
-#include <stdio.h>
-
#include <ntifs.h>
-#include <ndk/exfuncs.h>
-#include <ndk/halfuncs.h>
-#include <ndk/inbvfuncs.h>
-#include <ndk/kefuncs.h>
-#include <ndk/rtlfuncs.h>
#define __BROKEN__
#include <miniport.h>
#include <ntagp.h>
#include <dderror.h>
#include <windef.h>
-#include <initguid.h>
#include <wdmguid.h>
-#include <debug.h>
-
#define TAG_VIDEO_PORT 'PDIV'
#define TAG_VIDEO_PORT_BUFFER '\0mpV'
#define TAG_REQUEST_PACKET 'qRpV'
+#define GUID_STRING_LENGTH 38 * sizeof(WCHAR)
+
typedef struct _VIDEO_PORT_ADDRESS_MAPPING
{
LIST_ENTRY List;
PDEVICE_OBJECT FunctionalDeviceObject;
PDEVICE_OBJECT NextDeviceObject;
UNICODE_STRING RegistryPath;
+ UNICODE_STRING NewRegistryPath;
PKINTERRUPT InterruptObject;
KSPIN_LOCK InterruptSpinLock;
PCM_RESOURCE_LIST AllocatedResources;
AGP_BUS_INTERFACE_STANDARD AgpInterface;
KMUTEX DeviceLock;
LIST_ENTRY DmaAdapterList, ChildDeviceList;
+ ULONG SessionId;
CHAR MiniPortDeviceExtension[1];
} VIDEO_PORT_DEVICE_EXTENSION, *PVIDEO_PORT_DEVICE_EXTENSION;
extern ULONG CsrssInitialized;
extern PKPROCESS Csrss;
extern ULONG VideoPortDeviceNumber;
+extern KMUTEX VideoPortInt10Mutex;
VOID FASTCALL
IntAttachToCSRSS(PKPROCESS *CallingProcess, PKAPC_STATE ApcState);
/* int10.c */
+NTSTATUS
+NTAPI
+IntInitializeVideoAddressSpace(VOID);
+
VP_STATUS NTAPI
IntInt10AllocateBuffer(
IN PVOID Context,
IN PVOID Context,
IN OUT PINT10_BIOS_ARGUMENTS BiosArguments);
+/* registry.c */
+
+NTSTATUS
+NTAPI
+IntCopyRegistryKey(
+ _In_ HANDLE SourceKeyHandle,
+ _In_ HANDLE DestKeyHandle);
+
+NTSTATUS
+NTAPI
+IntCopyRegistryValue(
+ HANDLE SourceKeyHandle,
+ HANDLE DestKeyHandle,
+ PWSTR ValueName);
+
+NTSTATUS
+NTAPI
+IntSetupDeviceSettingsKey(
+ PVIDEO_PORT_DEVICE_EXTENSION DeviceExtension);
+
+NTSTATUS
+NTAPI
+IntCreateNewRegistryPath(
+ PVIDEO_PORT_DEVICE_EXTENSION DeviceExtension);
+
+NTSTATUS
+NTAPI
+IntCreateRegistryPath(
+ IN PCUNICODE_STRING DriverRegistryPath,
+ OUT PUNICODE_STRING DeviceRegistryPath);
+
+
#endif /* VIDEOPRT_H */