2 * COPYRIGHT: See COPYING in the top level directory
3 * PROJECT: ReactOS Serial enumerator driver
4 * FILE: drivers/bus/serenum/serenum.c
5 * PURPOSE: Serial enumerator driver entry point
7 * PROGRAMMERS: Hervé Poussineau (hpoussin@reactos.org)
13 static DRIVER_DISPATCH SerenumPnp
;
14 static DRIVER_DISPATCH IrpStub
;
15 static DRIVER_UNLOAD DriverUnload
;
16 DRIVER_INITIALIZE DriverEntry
;
20 IN PDEVICE_OBJECT DeviceObject
,
23 if (((PCOMMON_DEVICE_EXTENSION
)DeviceObject
->DeviceExtension
)->IsFDO
)
24 return SerenumFdoPnp(DeviceObject
, Irp
);
26 return SerenumPdoPnp(DeviceObject
, Irp
);
30 DriverUnload(IN PDRIVER_OBJECT DriverObject
)
32 // nothing to do here yet
37 IN PDEVICE_OBJECT DeviceObject
,
40 if (((PCOMMON_DEVICE_EXTENSION
)DeviceObject
->DeviceExtension
)->IsFDO
)
42 /* Forward IRPs to lower device */
43 return ForwardIrpToLowerDeviceAndForget(DeviceObject
, Irp
);
47 /* Forward IRPs to attached FDO */
48 return ForwardIrpToAttachedFdoAndForget(DeviceObject
, Irp
);
53 * Standard DriverEntry method.
57 IN PDRIVER_OBJECT DriverObject
,
58 IN PUNICODE_STRING RegPath
)
62 DriverObject
->DriverUnload
= DriverUnload
;
63 DriverObject
->DriverExtension
->AddDevice
= SerenumAddDevice
;
65 for (i
= 0; i
<= IRP_MJ_MAXIMUM_FUNCTION
; i
++)
66 DriverObject
->MajorFunction
[i
] = IrpStub
;
68 //DriverObject->MajorFunction[IRP_MJ_QUERY_INFORMATION] = SerialQueryInformation;
69 DriverObject
->MajorFunction
[IRP_MJ_PNP
] = SerenumPnp
;
70 //DriverObject->MajorFunction[IRP_MJ_POWER] = SerialPower;
72 return STATUS_SUCCESS
;