Author: pschweitzer
Date: Wed Aug 12 10:57:21 2009
New Revision: 42634
URL:
http://svn.reactos.org/svn/reactos?rev=42634&view=rev
Log:
Other resync.
Now branch builds up to ntoskrnl.
Modified:
branches/pierre-fsd/dll/win32/kernel32/misc/console.c
branches/pierre-fsd/dll/win32/kernel32/misc/dllmain.c
branches/pierre-fsd/drivers/input/kbdclass/kbdclass.c
branches/pierre-fsd/drivers/input/kbdclass/kbdclass.h
branches/pierre-fsd/drivers/input/kbdclass/misc.c
branches/pierre-fsd/include/reactos/win32k/ntgdityp.h
Modified: branches/pierre-fsd/dll/win32/kernel32/misc/console.c
URL:
http://svn.reactos.org/svn/reactos/branches/pierre-fsd/dll/win32/kernel32/m…
==============================================================================
--- branches/pierre-fsd/dll/win32/kernel32/misc/console.c [iso-8859-1] (original)
+++ branches/pierre-fsd/dll/win32/kernel32/misc/console.c [iso-8859-1] Wed Aug 12 10:57:21
2009
@@ -22,6 +22,7 @@
extern BOOL WINAPI DefaultConsoleCtrlHandler(DWORD Event);
extern __declspec(noreturn) VOID CALLBACK ConsoleControlDispatcher(DWORD CodeAndFlag);
extern RTL_CRITICAL_SECTION ConsoleLock;
+extern BOOL ConsoleInitialized;
extern BOOL WINAPI IsDebuggerPresent(VOID);
/* GLOBALS *******************************************************************/
@@ -3345,7 +3346,6 @@
PCSR_API_MESSAGE Request;
ULONG CsrRequest;
NTSTATUS Status;
- HANDLE hConsole;
Request = RtlAllocateHeap(RtlGetProcessHeap(),
0,
@@ -3357,7 +3357,6 @@
}
CsrRequest = MAKE_CSR_API(GET_TITLE, CSR_CONSOLE);
- Request->Data.GetTitleRequest.ConsoleHandle = hConsole;
Status = CsrClientCallServer(Request,
NULL,
@@ -3437,7 +3436,6 @@
ULONG CsrRequest;
NTSTATUS Status;
unsigned int c;
- HANDLE hConsole;
Request = RtlAllocateHeap(RtlGetProcessHeap(), 0,
max(sizeof(CSR_API_MESSAGE),
@@ -3450,7 +3448,6 @@
}
CsrRequest = MAKE_CSR_API(SET_TITLE, CSR_CONSOLE);
- Request->Data.SetTitleRequest.Console = hConsole;
for (c = 0; lpConsoleTitle[c] && c < CSRSS_MAX_TITLE_LENGTH; c++)
Request->Data.SetTitleRequest.Title[c] = lpConsoleTitle[c];
@@ -3489,7 +3486,6 @@
ULONG CsrRequest;
NTSTATUS Status;
unsigned int c;
- HANDLE hConsole;
Request = RtlAllocateHeap(RtlGetProcessHeap(),
0,
@@ -3503,7 +3499,6 @@
}
CsrRequest = MAKE_CSR_API(SET_TITLE, CSR_CONSOLE);
- Request->Data.SetTitleRequest.Console = hConsole;
for (c = 0; lpConsoleTitle[c] && c < CSRSS_MAX_TITLE_LENGTH; c++)
Request->Data.SetTitleRequest.Title[c] = lpConsoleTitle[c];
@@ -3543,7 +3538,7 @@
CSR_API_MESSAGE Request;
ULONG CsrRequest;
NTSTATUS Status;
-
+
if (dwDesiredAccess & ~(GENERIC_READ | GENERIC_WRITE)
|| dwShareMode & ~(FILE_SHARE_READ | FILE_SHARE_WRITE)
|| dwFlags != CONSOLE_TEXTMODE_BUFFER)
Modified: branches/pierre-fsd/dll/win32/kernel32/misc/dllmain.c
URL:
http://svn.reactos.org/svn/reactos/branches/pierre-fsd/dll/win32/kernel32/m…
==============================================================================
--- branches/pierre-fsd/dll/win32/kernel32/misc/dllmain.c [iso-8859-1] (original)
+++ branches/pierre-fsd/dll/win32/kernel32/misc/dllmain.c [iso-8859-1] Wed Aug 12 10:57:21
2009
@@ -26,9 +26,9 @@
HANDLE hBaseDir = NULL;
PPEB Peb;
ULONG SessionId;
+BOOL ConsoleInitialized = FALSE;
static BOOL DllInitialized = FALSE;
-static BOOL ConsoleInitialized = FALSE;
BOOL WINAPI
DllMain(HANDLE hInst,
@@ -374,6 +374,7 @@
/* Delete DLL critical section */
if (ConsoleInitialized == TRUE)
{
+ ConsoleInitialized = FALSE;
RtlDeleteCriticalSection (&ConsoleLock);
}
RtlDeleteCriticalSection (&DllLock);
Modified: branches/pierre-fsd/drivers/input/kbdclass/kbdclass.c
URL:
http://svn.reactos.org/svn/reactos/branches/pierre-fsd/drivers/input/kbdcla…
==============================================================================
--- branches/pierre-fsd/drivers/input/kbdclass/kbdclass.c [iso-8859-1] (original)
+++ branches/pierre-fsd/drivers/input/kbdclass/kbdclass.c [iso-8859-1] Wed Aug 12 10:57:21
2009
@@ -37,7 +37,7 @@
IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp)
{
- DPRINT("IRP_MJ_CREATE\n");
+ TRACE_(CLASS_NAME, "IRP_MJ_CREATE\n");
if (!((PCOMMON_DEVICE_EXTENSION)DeviceObject->DeviceExtension)->IsClassDO)
return ForwardIrpAndForget(DeviceObject, Irp);
@@ -54,7 +54,7 @@
IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp)
{
- DPRINT("IRP_MJ_CLOSE\n");
+ TRACE_(CLASS_NAME, "IRP_MJ_CLOSE\n");
if (!((PCOMMON_DEVICE_EXTENSION)DeviceObject->DeviceExtension)->IsClassDO)
return ForwardIrpAndForget(DeviceObject, Irp);
@@ -71,7 +71,7 @@
IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp)
{
- DPRINT("IRP_MJ_CLEANUP\n");
+ TRACE_(CLASS_NAME, "IRP_MJ_CLEANUP\n");
if (!((PCOMMON_DEVICE_EXTENSION)DeviceObject->DeviceExtension)->IsClassDO)
return ForwardIrpAndForget(DeviceObject, Irp);
@@ -92,7 +92,7 @@
KIRQL OldIrql;
NTSTATUS Status;
- DPRINT("IRP_MJ_READ\n");
+ TRACE_(CLASS_NAME, "IRP_MJ_READ\n");
ASSERT(DeviceExtension->Common.IsClassDO);
@@ -122,7 +122,7 @@
PCLASS_DEVICE_EXTENSION DeviceExtension;
NTSTATUS Status = STATUS_NOT_SUPPORTED;
- DPRINT("IRP_MJ_DEVICE_CONTROL\n");
+ TRACE_(CLASS_NAME, "IRP_MJ_DEVICE_CONTROL\n");
if (!((PCOMMON_DEVICE_EXTENSION)DeviceObject->DeviceExtension)->IsClassDO)
return ForwardIrpAndForget(DeviceObject, Irp);
@@ -170,7 +170,7 @@
break;
}
default:
- DPRINT1("IRP_MJ_DEVICE_CONTROL / unknown I/O control code 0x%lx\n",
+ WARN_(CLASS_NAME, "IRP_MJ_DEVICE_CONTROL / unknown I/O control code
0x%lx\n",
IoGetCurrentIrpStackLocation(Irp)->Parameters.DeviceIoControl.IoControlCode);
ASSERT(FALSE);
break;
@@ -200,7 +200,7 @@
return ForwardIrpAndForget(DeviceObject, Irp);
default:
{
- DPRINT1("Port DO stub for major function 0x%lx\n",
+ ERR_(CLASS_NAME, "Port DO stub for major function 0x%lx\n",
IoGetCurrentIrpStackLocation(Irp)->MajorFunction);
ASSERT(FALSE);
}
@@ -208,7 +208,7 @@
}
else
{
- DPRINT1("Class DO stub for major function 0x%lx\n",
+ ERR_(CLASS_NAME, "Class DO stub for major function 0x%lx\n",
IoGetCurrentIrpStackLocation(Irp)->MajorFunction);
ASSERT(FALSE);
}
@@ -236,7 +236,7 @@
ParametersRegistryKey.Buffer = ExAllocatePoolWithTag(PagedPool,
ParametersRegistryKey.MaximumLength, CLASS_TAG);
if (!ParametersRegistryKey.Buffer)
{
- DPRINT("ExAllocatePoolWithTag() failed\n");
+ WARN_(CLASS_NAME, "ExAllocatePoolWithTag() failed\n");
return STATUS_NO_MEMORY;
}
RtlCopyUnicodeString(&ParametersRegistryKey, RegistryPath);
@@ -315,7 +315,7 @@
PCLASS_DEVICE_EXTENSION DeviceExtension;
NTSTATUS Status;
- DPRINT("CreateClassDeviceObject(0x%p)\n", DriverObject);
+ TRACE_(CLASS_NAME, "CreateClassDeviceObject(0x%p)\n", DriverObject);
/* Create new device object */
DriverExtension = IoGetDriverObjectExtension(DriverObject, DriverObject);
@@ -328,19 +328,19 @@
DeviceNameU.Buffer = ExAllocatePoolWithTag(PagedPool, DeviceNameU.MaximumLength,
CLASS_TAG);
if (!DeviceNameU.Buffer)
{
- DPRINT("ExAllocatePoolWithTag() failed\n");
+ WARN_(CLASS_NAME, "ExAllocatePoolWithTag() failed\n");
return STATUS_NO_MEMORY;
}
Status = RtlAppendUnicodeToString(&DeviceNameU, L"\\Device\\");
if (!NT_SUCCESS(Status))
{
- DPRINT("RtlAppendUnicodeToString() failed with status 0x%08lx\n", Status);
+ WARN_(CLASS_NAME, "RtlAppendUnicodeToString() failed with status 0x%08lx\n",
Status);
goto cleanup;
}
Status = RtlAppendUnicodeStringToString(&DeviceNameU,
&DriverExtension->DeviceBaseName);
if (!NT_SUCCESS(Status))
{
- DPRINT("RtlAppendUnicodeStringToString() failed with status 0x%08lx\n",
Status);
+ WARN_(CLASS_NAME, "RtlAppendUnicodeStringToString() failed with status
0x%08lx\n", Status);
goto cleanup;
}
PrefixLength = DeviceNameU.MaximumLength - 4 * sizeof(WCHAR) - sizeof(UNICODE_NULL);
@@ -360,12 +360,12 @@
goto cleanup;
else if (Status != STATUS_OBJECT_NAME_COLLISION)
{
- DPRINT("IoCreateDevice() failed with status 0x%08lx\n", Status);
+ WARN_(CLASS_NAME, "IoCreateDevice() failed with status 0x%08lx\n", Status);
goto cleanup;
}
DeviceId++;
}
- DPRINT("Too many devices starting with '\\Device\\%wZ'\n",
&DriverExtension->DeviceBaseName);
+ WARN_(CLASS_NAME, "Too many devices starting with '\\Device\\%wZ'\n",
&DriverExtension->DeviceBaseName);
Status = STATUS_TOO_MANY_NAMES;
cleanup:
if (!NT_SUCCESS(Status))
@@ -468,7 +468,7 @@
SIZE_T InputCount = DataEnd - DataStart;
SIZE_T ReadSize;
- DPRINT("ClassCallback()\n");
+ TRACE_(CLASS_NAME, "ClassCallback()\n");
ASSERT(ClassDeviceExtension->Common.IsClassDO);
@@ -506,7 +506,7 @@
}
KeReleaseSpinLock(&ClassDeviceExtension->SpinLock, OldIrql);
- DPRINT("Leaving ClassCallback()\n");
+ TRACE_(CLASS_NAME, "Leaving ClassCallback()\n");
return TRUE;
}
@@ -522,7 +522,7 @@
CONNECT_DATA ConnectData;
NTSTATUS Status;
- DPRINT("Connecting PortDO %p to ClassDO %p\n", PortDO, ClassDO);
+ TRACE_(CLASS_NAME, "Connecting PortDO %p to ClassDO %p\n", PortDO, ClassDO);
KeInitializeEvent(&Event, NotificationEvent, FALSE);
@@ -578,7 +578,7 @@
KIRQL OldIrql;
NTSTATUS Status;
- DPRINT("Destroying PortDO %p\n", PortDO);
+ TRACE_(CLASS_NAME, "Destroying PortDO %p\n", PortDO);
DeviceExtension = (PPORT_DEVICE_EXTENSION)PortDO->DeviceExtension;
ClassDeviceExtension = DeviceExtension->ClassDO->DeviceExtension;
@@ -634,7 +634,7 @@
PPORT_DEVICE_EXTENSION DeviceExtension = NULL;
NTSTATUS Status;
- DPRINT("ClassAddDevice called. Pdo = 0x%p\n", Pdo);
+ TRACE_(CLASS_NAME, "ClassAddDevice called. Pdo = 0x%p\n", Pdo);
DriverExtension = IoGetDriverObjectExtension(DriverObject, DriverObject);
@@ -653,7 +653,7 @@
&Fdo);
if (!NT_SUCCESS(Status))
{
- DPRINT("IoCreateDevice() failed with status 0x%08lx\n", Status);
+ WARN_(CLASS_NAME, "IoCreateDevice() failed with status 0x%08lx\n", Status);
goto cleanup;
}
IoSetStartIoAttributes(Fdo, TRUE, TRUE);
@@ -666,7 +666,7 @@
Status = IoAttachDeviceToDeviceStackSafe(Fdo, Pdo,
&DeviceExtension->LowerDevice);
if (!NT_SUCCESS(Status))
{
- DPRINT("IoAttachDeviceToDeviceStackSafe() failed with status 0x%08lx\n",
Status);
+ WARN_(CLASS_NAME, "IoAttachDeviceToDeviceStackSafe() failed with status
0x%08lx\n", Status);
goto cleanup;
}
if (DeviceExtension->LowerDevice->Flags & DO_POWER_PAGABLE)
@@ -686,14 +686,14 @@
&DeviceExtension->ClassDO);
if (!NT_SUCCESS(Status))
{
- DPRINT("CreateClassDeviceObject() failed with status 0x%08lx\n", Status);
+ WARN_(CLASS_NAME, "CreateClassDeviceObject() failed with status 0x%08lx\n",
Status);
goto cleanup;
}
}
Status = ConnectPortDriver(Fdo, DeviceExtension->ClassDO);
if (!NT_SUCCESS(Status))
{
- DPRINT("ConnectPortDriver() failed with status 0x%08lx\n", Status);
+ WARN_(CLASS_NAME, "ConnectPortDriver() failed with status 0x%08lx\n",
Status);
goto cleanup;
}
Fdo->Flags &= ~DO_DEVICE_INITIALIZING;
@@ -725,7 +725,7 @@
KIRQL OldIrql;
BOOLEAN wasQueued = FALSE;
- DPRINT("ClassCancelRoutine(DeviceObject %p, Irp %p)\n", DeviceObject, Irp);
+ TRACE_(CLASS_NAME, "ClassCancelRoutine(DeviceObject %p, Irp %p)\n",
DeviceObject, Irp);
ASSERT(ClassDeviceExtension->Common.IsClassDO);
@@ -762,7 +762,7 @@
PCLASS_DEVICE_EXTENSION DeviceExtension = DeviceObject->DeviceExtension;
NTSTATUS Status;
- DPRINT("HandleReadIrp(DeviceObject %p, Irp %p)\n", DeviceObject, Irp);
+ TRACE_(CLASS_NAME, "HandleReadIrp(DeviceObject %p, Irp %p)\n", DeviceObject,
Irp);
ASSERT(DeviceExtension->Common.IsClassDO);
@@ -828,7 +828,7 @@
PCLASS_DEVICE_EXTENSION DeviceExtension = DeviceObject->DeviceExtension;
KIRQL OldIrql;
- DPRINT("ClassStartIo(DeviceObject %p, Irp %p)\n", DeviceObject, Irp);
+ TRACE_(CLASS_NAME, "ClassStartIo(DeviceObject %p, Irp %p)\n", DeviceObject,
Irp);
ASSERT(DeviceExtension->Common.IsClassDO);
@@ -854,7 +854,7 @@
ULONG Size, ResultLength;
NTSTATUS Status;
- DPRINT("SearchForLegacyDrivers(%p %p %lu)\n",
+ TRACE_(CLASS_NAME, "SearchForLegacyDrivers(%p %p %lu)\n",
DriverObject, Context, Count);
if (Count != 1)
@@ -868,7 +868,7 @@
&PortBaseName);
if (!NT_SUCCESS(Status))
{
- DPRINT("DuplicateUnicodeString() failed with status 0x%08lx\n", Status);
+ WARN_(CLASS_NAME, "DuplicateUnicodeString() failed with status 0x%08lx\n",
Status);
goto cleanup;
}
PortBaseName.Length -= (sizeof(L"Class") - sizeof(UNICODE_NULL));
@@ -879,7 +879,7 @@
KeyValueInformation = ExAllocatePoolWithTag(PagedPool, Size, CLASS_TAG);
if (!KeyValueInformation)
{
- DPRINT("ExAllocatePoolWithTag() failed\n");
+ WARN_(CLASS_NAME, "ExAllocatePoolWithTag() failed\n");
Status = STATUS_NO_MEMORY;
goto cleanup;
}
@@ -889,13 +889,13 @@
Status = ZwOpenKey(&hDeviceMapKey, 0, &ObjectAttributes);
if (Status == STATUS_OBJECT_NAME_NOT_FOUND)
{
- DPRINT("HKLM\\HARDWARE\\DEVICEMAP is non-existent\n");
+ INFO_(CLASS_NAME, "HKLM\\HARDWARE\\DEVICEMAP is non-existent\n");
Status = STATUS_SUCCESS;
goto cleanup;
}
else if (!NT_SUCCESS(Status))
{
- DPRINT("ZwOpenKey() failed with status 0x%08lx\n", Status);
+ WARN_(CLASS_NAME, "ZwOpenKey() failed with status 0x%08lx\n", Status);
goto cleanup;
}
@@ -904,13 +904,13 @@
Status = ZwOpenKey(&hPortKey, KEY_QUERY_VALUE, &ObjectAttributes);
if (Status == STATUS_OBJECT_NAME_NOT_FOUND)
{
- DPRINT("HKLM\\HARDWARE\\DEVICEMAP\\%wZ is non-existent\n",
&PortBaseName);
+ INFO_(CLASS_NAME, "HKLM\\HARDWARE\\DEVICEMAP\\%wZ is non-existent\n",
&PortBaseName);
Status = STATUS_SUCCESS;
goto cleanup;
}
else if (!NT_SUCCESS(Status))
{
- DPRINT("ZwOpenKey() failed with status 0x%08lx\n", Status);
+ WARN_(CLASS_NAME, "ZwOpenKey() failed with status 0x%08lx\n", Status);
goto cleanup;
}
@@ -928,16 +928,16 @@
Status = IoGetDeviceObjectPointer(&PortName, FILE_READ_ATTRIBUTES, &FileObject,
&PortDeviceObject);
if (!NT_SUCCESS(Status))
{
- DPRINT("IoGetDeviceObjectPointer(%wZ) failed with status 0x%08lx\n",
&PortName, Status);
+ WARN_(CLASS_NAME, "IoGetDeviceObjectPointer(%wZ) failed with status
0x%08lx\n", &PortName, Status);
continue;
}
- DPRINT("Legacy driver found\n");
+ INFO_(CLASS_NAME, "Legacy driver found\n");
Status = ClassAddDevice(DriverObject, PortDeviceObject);
if (!NT_SUCCESS(Status))
{
/* FIXME: Log the error */
- DPRINT("ClassAddDevice() failed with status 0x%08lx\n", Status);
+ WARN_(CLASS_NAME, "ClassAddDevice() failed with status 0x%08lx\n", Status);
}
/* A special hack for 1st stage setup: manually send start device to i8042prt */
@@ -973,7 +973,7 @@
(PVOID*)&DriverExtension);
if (!NT_SUCCESS(Status))
{
- DPRINT("IoAllocateDriverObjectExtension() failed with status 0x%08lx\n",
Status);
+ WARN_(CLASS_NAME, "IoAllocateDriverObjectExtension() failed with status
0x%08lx\n", Status);
return Status;
}
RtlZeroMemory(DriverExtension, sizeof(CLASS_DRIVER_EXTENSION));
@@ -984,14 +984,14 @@
&DriverExtension->RegistryPath);
if (!NT_SUCCESS(Status))
{
- DPRINT("DuplicateUnicodeString() failed with status 0x%08lx\n", Status);
+ WARN_(CLASS_NAME, "DuplicateUnicodeString() failed with status 0x%08lx\n",
Status);
return Status;
}
Status = ReadRegistryEntries(RegistryPath, DriverExtension);
if (!NT_SUCCESS(Status))
{
- DPRINT("ReadRegistryEntries() failed with status 0x%08lx\n", Status);
+ WARN_(CLASS_NAME, "ReadRegistryEntries() failed with status 0x%08lx\n",
Status);
return Status;
}
@@ -1002,7 +1002,7 @@
&DriverExtension->MainClassDeviceObject);
if (!NT_SUCCESS(Status))
{
- DPRINT("CreateClassDeviceObject() failed with status 0x%08lx\n", Status);
+ WARN_(CLASS_NAME, "CreateClassDeviceObject() failed with status 0x%08lx\n",
Status);
return Status;
}
}
Modified: branches/pierre-fsd/drivers/input/kbdclass/kbdclass.h
URL:
http://svn.reactos.org/svn/reactos/branches/pierre-fsd/drivers/input/kbdcla…
==============================================================================
--- branches/pierre-fsd/drivers/input/kbdclass/kbdclass.h [iso-8859-1] (original)
+++ branches/pierre-fsd/drivers/input/kbdclass/kbdclass.h [iso-8859-1] Wed Aug 12 10:57:21
2009
@@ -4,7 +4,6 @@
#include <stdio.h>
#include <pseh/pseh2.h>
-#define NDEBUG
#include <debug.h>
#define MAX_PATH 260
@@ -13,6 +12,7 @@
#define TAG(A, B, C, D) (ULONG)(((A)<<0) + ((B)<<8) + ((C)<<16) +
((D)<<24))
#define CLASS_TAG TAG('K', 'b', 'd', 'C')
+#define DPFLTR_CLASS_NAME_ID DPFLTR_KBDCLASS_ID
typedef enum
{
Modified: branches/pierre-fsd/drivers/input/kbdclass/misc.c
URL:
http://svn.reactos.org/svn/reactos/branches/pierre-fsd/drivers/input/kbdcla…
==============================================================================
--- branches/pierre-fsd/drivers/input/kbdclass/misc.c [iso-8859-1] (original)
+++ branches/pierre-fsd/drivers/input/kbdclass/misc.c [iso-8859-1] Wed Aug 12 10:57:21
2009
@@ -37,7 +37,7 @@
KeInitializeEvent(&Event, NotificationEvent, FALSE);
IoCopyCurrentIrpStackLocationToNext(Irp);
- DPRINT("Calling lower device %p\n", LowerDevice);
+ TRACE_(CLASS_NAME, "Calling lower device %p\n", LowerDevice);
IoSetCompletionRoutine(Irp, ForwardIrpAndWaitCompletion, &Event, TRUE, TRUE, TRUE);
Status = IoCallDriver(LowerDevice, Irp);
Modified: branches/pierre-fsd/include/reactos/win32k/ntgdityp.h
URL:
http://svn.reactos.org/svn/reactos/branches/pierre-fsd/include/reactos/win3…
==============================================================================
--- branches/pierre-fsd/include/reactos/win32k/ntgdityp.h [iso-8859-1] (original)
+++ branches/pierre-fsd/include/reactos/win32k/ntgdityp.h [iso-8859-1] Wed Aug 12 10:57:21
2009
@@ -229,8 +229,8 @@
typedef struct _UNIVERSAL_FONT_ID
{
- ULONG CheckSum;
- ULONG Index;
+ ULONG CheckSum;
+ ULONG Index;
} UNIVERSAL_FONT_ID, *PUNIVERSAL_FONT_ID;
#define RI_TECH_BITMAP 1
@@ -602,7 +602,13 @@
typedef VOID (NTAPI *PGD_SYNCHRONIZESURFACE)(SURFOBJ*, RECTL *, FLONG);
//
-// Most of these are definded in ddk/winddi.h
+// Declarations missing in ddk/winddi.h
+//
+typedef VOID (APIENTRY *PFN_DrvMovePanning)(LONG, LONG, FLONG);
+
+
+//
+// Most of these are defined in ddk/winddi.h
//
typedef struct _DRIVER_FUNCTIONS
{