ReactOS Fundraising Campaign 2012
 
€ 4,410 / € 30,000

Information | Donate

Home | Info | Community | Development | myReactOS | Contact Us

  1. Home
  2. Community
  3. Development
  4. myReactOS
  5. Fundraiser 2012

  1. Main Page
  2. Alphabetical List
  3. Data Structures
  4. Directories
  5. File List
  6. Data Fields
  7. Globals
  8. Related Pages

ReactOS Development > Doxygen

serenum.c
Go to the documentation of this file.
00001 /*
00002  * COPYRIGHT:       See COPYING in the top level directory
00003  * PROJECT:         ReactOS Serial enumerator driver
00004  * FILE:            drivers/bus/serenum/serenum.c
00005  * PURPOSE:         Serial enumerator driver entry point
00006  *
00007  * PROGRAMMERS:     Hervé Poussineau (hpoussin@reactos.org)
00008  */
00009 
00010 #define INITGUID
00011 #include "serenum.h"
00012 
00013 static DRIVER_DISPATCH SerenumPnp;
00014 static DRIVER_DISPATCH IrpStub;
00015 static DRIVER_UNLOAD DriverUnload;
00016 DRIVER_INITIALIZE DriverEntry;
00017 
00018 static NTSTATUS NTAPI
00019 SerenumPnp(
00020     IN PDEVICE_OBJECT DeviceObject,
00021     IN PIRP Irp)
00022 {
00023     if (((PCOMMON_DEVICE_EXTENSION)DeviceObject->DeviceExtension)->IsFDO)
00024         return SerenumFdoPnp(DeviceObject, Irp);
00025     else
00026         return SerenumPdoPnp(DeviceObject, Irp);
00027 }
00028 
00029 static VOID NTAPI
00030 DriverUnload(IN PDRIVER_OBJECT DriverObject)
00031 {
00032     // nothing to do here yet
00033 }
00034 
00035 static NTSTATUS NTAPI
00036 IrpStub(
00037     IN PDEVICE_OBJECT DeviceObject,
00038     IN PIRP Irp)
00039 {
00040     if (((PCOMMON_DEVICE_EXTENSION)DeviceObject->DeviceExtension)->IsFDO)
00041     {
00042         /* Forward IRPs to lower device */
00043         return ForwardIrpToLowerDeviceAndForget(DeviceObject, Irp);
00044     }
00045     else
00046     {
00047         /* Forward IRPs to attached FDO */
00048         return ForwardIrpToAttachedFdoAndForget(DeviceObject, Irp);
00049     }
00050 }
00051 
00052 /*
00053  * Standard DriverEntry method.
00054  */
00055 NTSTATUS NTAPI
00056 DriverEntry(
00057     IN PDRIVER_OBJECT DriverObject,
00058     IN PUNICODE_STRING RegPath)
00059 {
00060     ULONG i;
00061 
00062     DriverObject->DriverUnload = DriverUnload;
00063     DriverObject->DriverExtension->AddDevice = SerenumAddDevice;
00064 
00065     for (i = 0; i <= IRP_MJ_MAXIMUM_FUNCTION; i++)
00066         DriverObject->MajorFunction[i] = IrpStub;
00067 
00068     //DriverObject->MajorFunction[IRP_MJ_QUERY_INFORMATION] = SerialQueryInformation;
00069     DriverObject->MajorFunction[IRP_MJ_PNP] = SerenumPnp;
00070     //DriverObject->MajorFunction[IRP_MJ_POWER] = SerialPower;
00071 
00072     return STATUS_SUCCESS;
00073 }

Generated on Sat May 26 2012 04:26:44 for ReactOS by doxygen 1.7.6.1

ReactOS is a registered trademark or a trademark of ReactOS Foundation in the United States and other countries.