Home | Info | Community | Development | myReactOS | Contact Us
ReactOS Development > Doxygenserenum.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
1.7.6.1
|