Home | Info | Community | Development | myReactOS | Contact Us
ReactOS Development > Doxygenpdo.c
Go to the documentation of this file.
00001 /* 00002 * PROJECT: ReactOS ISA PnP Bus driver 00003 * FILE: pdo.c 00004 * PURPOSE: PDO-specific code 00005 * PROGRAMMERS: Cameron Gutman (cameron.gutman@reactos.org) 00006 */ 00007 #include <isapnp.h> 00008 00009 #define NDEBUG 00010 #include <debug.h> 00011 00012 NTSTATUS 00013 NTAPI 00014 IsaPdoQueryDeviceRelations( 00015 IN PISAPNP_LOGICAL_DEVICE LogDev, 00016 IN PIRP Irp, 00017 IN PIO_STACK_LOCATION IrpSp) 00018 { 00019 PDEVICE_RELATIONS DeviceRelations; 00020 00021 if (IrpSp->Parameters.QueryDeviceRelations.Type != TargetDeviceRelation) 00022 return Irp->IoStatus.Status; 00023 00024 DeviceRelations = ExAllocatePool(PagedPool, sizeof(*DeviceRelations)); 00025 if (!DeviceRelations) 00026 return STATUS_INSUFFICIENT_RESOURCES; 00027 00028 DeviceRelations->Count = 1; 00029 DeviceRelations->Objects[0] = LogDev->Common.Self; 00030 ObReferenceObject(LogDev->Common.Self); 00031 00032 Irp->IoStatus.Information = (ULONG_PTR)DeviceRelations; 00033 00034 return STATUS_SUCCESS; 00035 } 00036 00037 NTSTATUS 00038 NTAPI 00039 IsaPdoPnp( 00040 IN PISAPNP_LOGICAL_DEVICE LogDev, 00041 IN PIRP Irp, 00042 IN PIO_STACK_LOCATION IrpSp) 00043 { 00044 NTSTATUS Status = Irp->IoStatus.Status; 00045 00046 switch (IrpSp->MinorFunction) 00047 { 00048 case IRP_MN_START_DEVICE: 00049 Status = IsaHwActivateDevice(LogDev); 00050 00051 if (NT_SUCCESS(Status)) 00052 LogDev->Common.State = dsStarted; 00053 break; 00054 00055 case IRP_MN_STOP_DEVICE: 00056 Status = IsaHwDeactivateDevice(LogDev); 00057 00058 if (NT_SUCCESS(Status)) 00059 LogDev->Common.State = dsStopped; 00060 break; 00061 00062 case IRP_MN_QUERY_DEVICE_RELATIONS: 00063 Status = IsaPdoQueryDeviceRelations(LogDev, Irp, IrpSp); 00064 break; 00065 00066 case IRP_MN_QUERY_RESOURCES: 00067 DPRINT1("IRP_MN_QUERY_RESOURCES is UNIMPLEMENTED!\n"); 00068 break; 00069 00070 case IRP_MN_QUERY_RESOURCE_REQUIREMENTS: 00071 DPRINT1("IRP_MN_QUERY_RESOURCE_REQUIREMENTS is UNIMPLEMENTED!\n"); 00072 break; 00073 00074 default: 00075 DPRINT1("Unknown PnP code: %x\n", IrpSp->MinorFunction); 00076 break; 00077 } 00078 00079 Irp->IoStatus.Status = Status; 00080 IoCompleteRequest(Irp, IO_NO_INCREMENT); 00081 00082 return Status; 00083 } Generated on Fri May 25 2012 04:25:45 for ReactOS by
1.7.6.1
|