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)
14 static DRIVER_DISPATCH SerenumPnp
;
15 static DRIVER_DISPATCH IrpStub
;
16 static DRIVER_UNLOAD DriverUnload
;
17 DRIVER_INITIALIZE DriverEntry
;
21 IN PDEVICE_OBJECT DeviceObject
,
24 if (((PCOMMON_DEVICE_EXTENSION
)DeviceObject
->DeviceExtension
)->IsFDO
)
25 return SerenumFdoPnp(DeviceObject
, Irp
);
27 return SerenumPdoPnp(DeviceObject
, Irp
);
31 DriverUnload(IN PDRIVER_OBJECT DriverObject
)
33 // nothing to do here yet
38 IN PDEVICE_OBJECT DeviceObject
,
41 if (((PCOMMON_DEVICE_EXTENSION
)DeviceObject
->DeviceExtension
)->IsFDO
)
43 /* Forward IRPs to lower device */
44 return ForwardIrpToLowerDeviceAndForget(DeviceObject
, Irp
);
48 /* Forward IRPs to attached FDO */
49 return ForwardIrpToAttachedFdoAndForget(DeviceObject
, Irp
);
54 * Standard DriverEntry method.
58 IN PDRIVER_OBJECT DriverObject
,
59 IN PUNICODE_STRING RegPath
)
63 DriverObject
->DriverUnload
= DriverUnload
;
64 DriverObject
->DriverExtension
->AddDevice
= SerenumAddDevice
;
66 for (i
= 0; i
<= IRP_MJ_MAXIMUM_FUNCTION
; i
++)
67 DriverObject
->MajorFunction
[i
] = IrpStub
;
69 //DriverObject->MajorFunction[IRP_MJ_QUERY_INFORMATION] = SerialQueryInformation;
70 DriverObject
->MajorFunction
[IRP_MJ_PNP
] = SerenumPnp
;
71 //DriverObject->MajorFunction[IRP_MJ_POWER] = SerialPower;
73 return STATUS_SUCCESS
;