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.h
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.h
00005  * PURPOSE:         Serial enumerator driver header
00006  *
00007  * PROGRAMMERS:     Hervé Poussineau (hpoussin@reactos.org)
00008  */
00009 
00010 #include <ntifs.h>
00011 #include <ntddk.h>
00012 #include <ntddser.h>
00013 #include <stdio.h>
00014 #include <stdarg.h>
00015 #include <debug.h>
00016 
00017 typedef enum
00018 {
00019   dsStopped,
00020   dsStarted,
00021   dsPaused,
00022   dsRemoved,
00023   dsSurpriseRemoved
00024 } SERENUM_DEVICE_STATE;
00025 
00026 typedef struct _COMMON_DEVICE_EXTENSION
00027 {
00028     BOOLEAN IsFDO;
00029     SERENUM_DEVICE_STATE PnpState;
00030 } COMMON_DEVICE_EXTENSION, *PCOMMON_DEVICE_EXTENSION;
00031 
00032 typedef struct _FDO_DEVICE_EXTENSION
00033 {
00034     COMMON_DEVICE_EXTENSION Common;
00035 
00036     PDEVICE_OBJECT LowerDevice;
00037     PDEVICE_OBJECT Pdo;
00038     IO_REMOVE_LOCK RemoveLock;
00039 
00040     UNICODE_STRING SerenumInterfaceName;
00041 
00042     PDEVICE_OBJECT AttachedPdo;
00043     ULONG Flags;
00044 } FDO_DEVICE_EXTENSION, *PFDO_DEVICE_EXTENSION;
00045 
00046 typedef struct _PDO_DEVICE_EXTENSION
00047 {
00048     COMMON_DEVICE_EXTENSION Common;
00049 
00050     PDEVICE_OBJECT AttachedFdo;
00051 
00052     UNICODE_STRING DeviceDescription; // REG_SZ
00053     UNICODE_STRING DeviceId;          // REG_SZ
00054     UNICODE_STRING InstanceId;        // REG_SZ
00055     UNICODE_STRING HardwareIds;       // REG_MULTI_SZ
00056     UNICODE_STRING CompatibleIds;     // REG_MULTI_SZ
00057 } PDO_DEVICE_EXTENSION, *PPDO_DEVICE_EXTENSION;
00058 
00059 #define SERENUM_TAG 'ereS'
00060 
00061 /* Flags */
00062 #define FLAG_ENUMERATION_DONE    0x01
00063 
00064 /************************************ detect.c */
00065 
00066 NTSTATUS
00067 SerenumDetectPnpDevice(
00068     IN PDEVICE_OBJECT DeviceObject,
00069     IN PDEVICE_OBJECT LowerDevice);
00070 
00071 NTSTATUS
00072 SerenumDetectLegacyDevice(
00073     IN PDEVICE_OBJECT DeviceObject,
00074     IN PDEVICE_OBJECT LowerDevice);
00075 
00076 /************************************ fdo.c */
00077 
00078 DRIVER_ADD_DEVICE SerenumAddDevice;
00079 
00080 NTSTATUS
00081 SerenumFdoPnp(
00082     IN PDEVICE_OBJECT DeviceObject,
00083     IN PIRP Irp);
00084 
00085 /************************************ misc.c */
00086 
00087 NTSTATUS
00088 SerenumInitMultiSzString(
00089     OUT PUNICODE_STRING Destination,
00090     ... /* list of PCSZ */);
00091 
00092 NTSTATUS
00093 ForwardIrpAndWait(
00094     IN PDEVICE_OBJECT DeviceObject,
00095     IN PIRP Irp);
00096 
00097 NTSTATUS NTAPI
00098 ForwardIrpToLowerDeviceAndForget(
00099     IN PDEVICE_OBJECT DeviceObject,
00100     IN PIRP Irp);
00101 
00102 NTSTATUS NTAPI
00103 ForwardIrpToAttachedFdoAndForget(
00104     IN PDEVICE_OBJECT DeviceObject,
00105     IN PIRP Irp);
00106 
00107 NTSTATUS NTAPI
00108 ForwardIrpAndForget(
00109     IN PDEVICE_OBJECT DeviceObject,
00110     IN PIRP Irp);
00111 
00112 NTSTATUS
00113 DuplicateUnicodeString(
00114     IN ULONG Flags,
00115     IN PCUNICODE_STRING SourceString,
00116     OUT PUNICODE_STRING DestinationString);
00117 
00118 /************************************ pdo.c */
00119 
00120 NTSTATUS
00121 SerenumPdoPnp(
00122     IN PDEVICE_OBJECT DeviceObject,
00123     IN PIRP Irp);
00124 
00125 /************************************ serenum.c */
00126 
00127 NTSTATUS NTAPI
00128 DriverEntry(
00129     IN PDRIVER_OBJECT DriverObject,
00130     IN PUNICODE_STRING RegPath);

Generated on Sun May 27 2012 04:28:11 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.