Author: tfaber
Date: Thu Aug 18 07:08:59 2011
New Revision: 53293
URL:
http://svn.reactos.org/svn/reactos?rev=53293&view=rev
Log:
[KMTESTS]
- Make IRP major function name table public
- IoHelper: catch all IRPs and add debug messages
Modified:
branches/GSoC_2011/KMTestSuite/kmtests/include/kmt_platform.h
branches/GSoC_2011/KMTestSuite/kmtests/include/kmt_test.h
branches/GSoC_2011/KMTestSuite/kmtests/kmtest_drv/kmtest_standalone.c
branches/GSoC_2011/KMTestSuite/kmtests/ntos_io/IoHelper_drv.c
Modified: branches/GSoC_2011/KMTestSuite/kmtests/include/kmt_platform.h
URL:
http://svn.reactos.org/svn/reactos/branches/GSoC_2011/KMTestSuite/kmtests/i…
==============================================================================
--- branches/GSoC_2011/KMTestSuite/kmtests/include/kmt_platform.h [iso-8859-1] (original)
+++ branches/GSoC_2011/KMTestSuite/kmtests/include/kmt_platform.h [iso-8859-1] Thu Aug 18
07:08:59 2011
@@ -7,6 +7,10 @@
#ifndef _KMTEST_PLATFORM_H_
#define _KMTEST_PLATFORM_H_
+
+#if !defined _KMTEST_TEST_H_
+#error include kmt_test.h instead of including kmt_platform.h!
+#endif /* !defined _KMTEST_TEST_H_ */
#if defined KMT_KERNEL_MODE || defined KMT_STANDALONE_DRIVER
#include <ntddk.h>
Modified: branches/GSoC_2011/KMTestSuite/kmtests/include/kmt_test.h
URL:
http://svn.reactos.org/svn/reactos/branches/GSoC_2011/KMTestSuite/kmtests/i…
==============================================================================
--- branches/GSoC_2011/KMTestSuite/kmtests/include/kmt_test.h [iso-8859-1] (original)
+++ branches/GSoC_2011/KMTestSuite/kmtests/include/kmt_test.h [iso-8859-1] Thu Aug 18
07:08:59 2011
@@ -82,6 +82,7 @@
extern BOOLEAN KmtIsCheckedBuild;
extern BOOLEAN KmtIsMultiProcessorBuild;
+extern PCSTR KmtMajorFunctionNames[];
VOID KmtSetIrql(IN KIRQL NewIrql);
BOOLEAN KmtAreInterruptsEnabled(VOID);
@@ -96,7 +97,9 @@
DWORD KmtSendToDriver(IN DWORD ControlCode);
DWORD KmtSendStringToDriver(IN DWORD ControlCode, IN PCSTR String);
DWORD KmtSendBufferToDriver(IN DWORD ControlCode, IN OUT PVOID Buffer OPTIONAL, IN DWORD
InLength, IN OUT PDWORD OutLength);
-#endif /* defined KMT_USER_MODE */
+#else /* if !defined KMT_KERNEL_MODE && !defined KMT_USER_MODE */
+#error either KMT_KERNEL_MODE or KMT_USER_MODE must be defined
+#endif /* !defined KMT_KERNEL_MODE && !defined KMT_USER_MODE */
extern PKMT_RESULTBUFFER ResultBuffer;
@@ -169,6 +172,37 @@
#if defined KMT_KERNEL_MODE
BOOLEAN KmtIsCheckedBuild;
BOOLEAN KmtIsMultiProcessorBuild;
+PCSTR KmtMajorFunctionNames[] =
+{
+ "Create",
+ "CreateNamedPipe",
+ "Close",
+ "Read",
+ "Write",
+ "QueryInformation",
+ "SetInformation",
+ "QueryEa",
+ "SetEa",
+ "FlushBuffers",
+ "QueryVolumeInformation",
+ "SetVolumeInformation",
+ "DirectoryControl",
+ "FileSystemControl",
+ "DeviceControl",
+ "InternalDeviceControl/Scsi",
+ "Shutdown",
+ "LockControl",
+ "Cleanup",
+ "CreateMailslot",
+ "QuerySecurity",
+ "SetSecurity",
+ "Power",
+ "SystemControl",
+ "DeviceChange",
+ "QueryQuota",
+ "SetQuota",
+ "Pnp/PnpPower"
+};
VOID KmtSetIrql(IN KIRQL NewIrql)
{
Modified: branches/GSoC_2011/KMTestSuite/kmtests/kmtest_drv/kmtest_standalone.c
URL:
http://svn.reactos.org/svn/reactos/branches/GSoC_2011/KMTestSuite/kmtests/k…
==============================================================================
--- branches/GSoC_2011/KMTestSuite/kmtests/kmtest_drv/kmtest_standalone.c [iso-8859-1]
(original)
+++ branches/GSoC_2011/KMTestSuite/kmtests/kmtest_drv/kmtest_standalone.c [iso-8859-1] Thu
Aug 18 07:08:59 2011
@@ -46,38 +46,6 @@
static KMT_IRP_HANDLER_ENTRY IrpHandlers[KMT_MAX_IRP_HANDLERS] = { { 0 } };
#define KMT_MAX_MESSAGE_HANDLERS 256
static KMT_MESSAGE_HANDLER_ENTRY MessageHandlers[KMT_MAX_MESSAGE_HANDLERS] = { { 0 } };
-
-static const char *IrpMajorFunctionNames[] =
-{
- "Create",
- "CreateNamedPipe",
- "Close",
- "Read",
- "Write",
- "QueryInformation",
- "SetInformation",
- "QueryEa",
- "SetEa",
- "FlushBuffers",
- "QueryVolumeInformation",
- "SetVolumeInformation",
- "DirectoryControl",
- "FileSystemControl",
- "DeviceControl",
- "InternalDeviceControl/Scsi",
- "Shutdown",
- "LockControl",
- "Cleanup",
- "CreateMailslot",
- "QuerySecurity",
- "SetSecurity",
- "Power",
- "SystemControl",
- "DeviceChange",
- "QueryQuota",
- "SetQuota",
- "Pnp/PnpPower"
-};
/**
* @name DriverEntry
@@ -342,7 +310,7 @@
IoStackLocation = IoGetCurrentIrpStackLocation(Irp);
DPRINT("DriverDispatch: Function=%s, Device=%p\n",
- IrpMajorFunctionNames[IoStackLocation->MajorFunction],
+ KmtMajorFunctionNames[IoStackLocation->MajorFunction],
DeviceObject);
for (i = 0; i < sizeof IrpHandlers / sizeof IrpHandlers[0]; ++i)
Modified: branches/GSoC_2011/KMTestSuite/kmtests/ntos_io/IoHelper_drv.c
URL:
http://svn.reactos.org/svn/reactos/branches/GSoC_2011/KMTestSuite/kmtests/n…
==============================================================================
--- branches/GSoC_2011/KMTestSuite/kmtests/ntos_io/IoHelper_drv.c [iso-8859-1] (original)
+++ branches/GSoC_2011/KMTestSuite/kmtests/ntos_io/IoHelper_drv.c [iso-8859-1] Thu Aug 18
07:08:59 2011
@@ -20,6 +20,7 @@
IN OUT INT *Flags)
{
NTSTATUS Status = STATUS_SUCCESS;
+ INT i;
PAGED_CODE();
@@ -27,10 +28,12 @@
UNREFERENCED_PARAMETER(RegistryPath);
UNREFERENCED_PARAMETER(Flags);
+ DPRINT("TestEntry. DriverObject=%p, RegistryPath=%wZ\n", DriverObject,
RegistryPath);
+
*DeviceName = L"IoHelper";
- KmtRegisterIrpHandler(IRP_MJ_CREATE, NULL, TestIrpHandler);
- KmtRegisterIrpHandler(IRP_MJ_CLOSE, NULL, TestIrpHandler);
+ for (i = 0; i <= IRP_MJ_MAXIMUM_FUNCTION; ++i)
+ KmtRegisterIrpHandler(i, NULL, TestIrpHandler);
return Status;
}
@@ -42,6 +45,8 @@
PAGED_CODE();
UNREFERENCED_PARAMETER(DriverObject);
+
+ DPRINT("TestUnload. DriverObject=%p\n", DriverObject);
}
static
@@ -53,10 +58,9 @@
{
NTSTATUS Status = STATUS_SUCCESS;
- if (IoStackLocation->MajorFunction == IRP_MJ_CREATE)
- DPRINT("Helper Driver: Create Device %p", DeviceObject);
- else if (IoStackLocation->MajorFunction == IRP_MJ_CLOSE)
- DPRINT("Helper Driver: Close Device %p", DeviceObject);
+ DPRINT("TestIrpHandler. Function=%s, DeviceObject=%p\n",
+ KmtMajorFunctionNames[IoStackLocation->MajorFunction],
+ DeviceObject);
Irp->IoStatus.Status = Status;
Irp->IoStatus.Information = 0;