Implement partly IoReportResourceForDetection() and
IoReportDetectedDevice(), just enough to support serial driver
Modified: trunk/reactos/ntoskrnl/io/pnpreport.c
_____
Modified: trunk/reactos/ntoskrnl/io/pnpreport.c
--- trunk/reactos/ntoskrnl/io/pnpreport.c 2005-03-18 16:01:35 UTC
(rev 14177)
+++ trunk/reactos/ntoskrnl/io/pnpreport.c 2005-03-18 16:51:39 UTC
(rev 14178)
@@ -10,6 +10,7 @@
/* INCLUDES
******************************************************************/
+//#define NDEBUG
#include <ntoskrnl.h>
#include <internal/debug.h>
@@ -30,8 +31,25 @@
IN BOOLEAN ResourceAssigned,
IN OUT PDEVICE_OBJECT *DeviceObject)
{
- DPRINT("IoReportDetectedDevice called (UNIMPLEMENTED)\n");
- return STATUS_NOT_IMPLEMENTED;
+ PDEVICE_NODE DeviceNode;
+ NTSTATUS Status;
+
+ DPRINT("IoReportDetectedDevice called (partly implemented)\n");
+ /* Use IopRootDeviceNode for now */
+ Status = IopCreateDeviceNode(IopRootDeviceNode, NULL, &DeviceNode);
+ if (!NT_SUCCESS(Status))
+ {
+ DPRINT("IopCreateDeviceNode() failed (Status 0x%08x)\n", Status);
+ return Status;
+ }
+
+ Status = IopInitializePnpServices(DeviceNode, FALSE);
+ if (!NT_SUCCESS(Status))
+ {
+ DPRINT("IopInitializePnpServices() failed (Status 0x%08x)\n",
Status);
+ return Status;
+ }
+ return IopInitializeDevice(DeviceNode, DriverObject);
}
/*
@@ -48,8 +66,9 @@
IN ULONG DeviceListSize OPTIONAL,
OUT PBOOLEAN ConflictDetected)
{
- DPRINT("IoReportResourceForDetection called (UNIMPLEMENTED)\n");
- return STATUS_NOT_IMPLEMENTED;
+ DPRINT("IoReportResourceForDetection UNIMPLEMENTED but returns
success.\n");
+ *ConflictDetected = FALSE;
+ return STATUS_SUCCESS;
}
/*
@@ -61,7 +80,7 @@
IN PDEVICE_OBJECT PhysicalDeviceObject,
IN PVOID NotificationStructure)
{
- DPRINT("IoReportTargetDeviceChange called (UNIMPLEMENTED)\n");
+ DPRINT1("IoReportTargetDeviceChange called (UNIMPLEMENTED)\n");
return STATUS_NOT_IMPLEMENTED;
}
@@ -76,7 +95,7 @@
IN PDEVICE_CHANGE_COMPLETE_CALLBACK Callback OPTIONAL,
IN PVOID Context OPTIONAL)
{
- DPRINT("IoReportTargetDeviceChangeAsynchronous called
(UNIMPLEMENTED)\n");
+ DPRINT1("IoReportTargetDeviceChangeAsynchronous called
(UNIMPLEMENTED)\n");
return STATUS_NOT_IMPLEMENTED;
}
Show replies by date