155,6 → 155,7 |
typedef struct _DEVICE_EXT |
{ |
PDEVICE_OBJECT DeviceObject; // points to myself |
PDEVICE_OBJECT LowerDeviceObject; |
PDRIVER_OBJECT driverObj; // points to my driver */ |
PIRP actualIrp; // points to .. |
|
168,7 → 169,7 |
PCIADA *vmemm[PCIVME_MAX_VMEMM]; // points to PCIADA to which it belongs |
|
int nInitState; // tracks the state of initialisation |
} DEVICE_EXT; |
} DEVICE_EXT, *PDEVICE_EXT; |
|
typedef struct |
{ |
179,15 → 180,21 |
|
// Prototypes to support following pragmas |
NTSTATUS DriverEntry(PDRIVER_OBJECT driverObj, PUNICODE_STRING regPath); |
NTSTATUS HandleStartDevice(PDEVICE_OBJECT fdo, PIRP Irp); |
NTSTATUS HandleStopDevice(PDEVICE_OBJECT fdo, PIRP Irp); |
NTSTATUS DefaultPnpHandler(PDEVICE_OBJECT fdo, PIRP Irp); |
NTSTATUS PCIVMEStartDevice(PDEVICE_OBJECT device_object, PIRP irp); |
NTSTATUS PCIVMEAddDevice( PDRIVER_OBJECT driverObj, PDEVICE_OBJECT pdo); |
NTSTATUS PCIVMEDispatchPnp(PDEVICE_OBJECT deviceObj, PIRP irp); |
NTSTATUS PCIVMEOpen(PDEVICE_OBJECT deviceObj, PIRP irp); |
NTSTATUS PCIVMEClose(PDEVICE_OBJECT deviceObj, PIRP irp); |
VOID PCIVMEUnload(PDRIVER_OBJECT driverObj); |
NTSTATUS SearchDevices(PDEVICE_OBJECT device_Obj); |
NTSTATUS PLX9050BugFix(PDEVICE_OBJECT device_Obj); |
NTSTATUS PCIVMEExtractResources(PCIADA *pciada, PCM_RESOURCE_LIST pList); |
NTSTATUS PCIVMEReserveResources(PDEVICE_OBJECT device_Obj); |
NTSTATUS PCIVMEExtractResources(PCIADA *pciada, PIRP irp); |
NTSTATUS PCIVMEReserveResources(PDEVICE_OBJECT device_Obj, PIRP irp); |
NTSTATUS PCIVMEFreeResources(PDEVICE_OBJECT device_Obj); |
NTSTATUS PCIVMETranslateBusAddresses(PDEVICE_OBJECT device_Obj); |
NTSTATUS PCIVMETranslateBusAddresses(PDEVICE_OBJECT device_Obj, PIRP irp); |
NTSTATUS PCIVMETranslateInterrupt(PDEVICE_OBJECT device_Obj); |
NTSTATUS PCIVMEMapIOspace(PDEVICE_OBJECT device_object); |
VOID PCIVMESoftInit(PDEVICE_OBJECT device_Obj); |
197,22 → 204,28 |
#if 0 // WIN2000 change versus WINNT? |
#ifdef ALLOC_PRAGMA |
#pragma alloc_text (init, DriverEntry) |
#pragma alloc_text (init, SearchDevices) |
#pragma alloc_text (init, PLX9050BugFix) |
#pragma alloc_text (init, PCIVMEExtractResources) |
#pragma alloc_text (init, PCIVMEReserveResources) |
#pragma alloc_text (init, PCIVMETranslateBusAddresses) |
#pragma alloc_text (init, PCIVMETranslateInterrupt) |
#pragma alloc_text (init, PCIVMEMapIOspace) |
#pragma alloc_text (init, PCIVMESoftInit) |
#pragma alloc_text (page, PCIVMEStartDevice) |
#pragma alloc_text (page, PCIVMEAddDevice) |
#pragma alloc_text (page, SearchDevices) |
#pragma alloc_text (page, PLX9050BugFix) |
#pragma alloc_text (page, PCIVMEExtractResources) |
#pragma alloc_text (page, PCIVMEReserveResources) |
#pragma alloc_text (page, PCIVMETranslateBusAddresses) |
#pragma alloc_text (page, PCIVMETranslateInterrupt) |
#pragma alloc_text (page, PCIVMEMapIOspace) |
#pragma alloc_text (page, PCIVMESoftInit) |
#endif |
|
/* put all this procedures in the paged memory-pool, all called at passiv Level */ |
#ifdef ALLOC_PRAGMA |
#pragma alloc_text (page, HandleStartDevice) |
#pragma alloc_text (page, HandleStopDevice) |
#pragma alloc_text (page, PCIVMEOpen) |
#pragma alloc_text (page, PCIVMEClose) |
#pragma alloc_text (page, PCIVMEUnload) |
#pragma alloc_text (page, PCIVMEFreeResources) |
#pragma alloc_text (page, PCIVMEDispatchPnp) |
#pragma alloc_text (page, DefaultPnpHandler) |
#endif |
#endif // WIN2000 change versus WINNT? |
|