2 * SCSI_PORT_TIMER_STATES
5 * An enumeration containing the states in the timer DFA
7 typedef enum _SCSI_PORT_TIMER_STATES
11 IDETimerResetWaitForBusyNegate,
12 IDETimerResetWaitForDrdyAssert
13 } SCSI_PORT_TIMER_STATES;
16 typedef struct _SCSI_PORT_DEVICE_BASE
22 SCSI_PHYSICAL_ADDRESS IoAddress;
23 ULONG SystemIoBusNumber;
24 } SCSI_PORT_DEVICE_BASE, *PSCSI_PORT_DEVICE_BASE;
27 typedef struct _SCSI_PORT_LUN_EXTENSION
35 BOOLEAN DeviceClaimed;
36 PDEVICE_OBJECT DeviceObject;
38 INQUIRYDATA InquiryData;
40 KDEVICE_QUEUE DeviceQueue;
44 UCHAR MiniportLunExtension[1]; /* must be the last entry */
45 } SCSI_PORT_LUN_EXTENSION, *PSCSI_PORT_LUN_EXTENSION;
49 * SCSI_PORT_DEVICE_EXTENSION
52 * First part of the port objects device extension. The second
53 * part is the miniport-specific device extension.
56 typedef struct _SCSI_PORT_DEVICE_EXTENSION
59 ULONG MiniPortExtensionSize;
60 PORT_CONFIGURATION_INFORMATION PortConfig;
65 PKINTERRUPT Interrupt;
69 SCSI_PORT_TIMER_STATES TimerState;
74 LIST_ENTRY DeviceBaseListHead;
76 ULONG LunExtensionSize;
77 LIST_ENTRY LunExtensionListHead;
79 PIO_SCSI_CAPABILITIES PortCapabilities;
81 PDEVICE_OBJECT DeviceObject;
82 PCONTROLLER_OBJECT ControllerObject;
84 PHW_STARTIO HwStartIo;
85 PHW_INTERRUPT HwInterrupt;
87 PSCSI_REQUEST_BLOCK OriginalSrb;
88 SCSI_REQUEST_BLOCK InternalSrb;
89 SENSE_DATA InternalSenseData;
91 /* DMA related stuff */
92 PADAPTER_OBJECT AdapterObject;
93 ULONG MapRegisterCount;
95 PHYSICAL_ADDRESS PhysicalAddress;
97 ULONG CommonBufferLength;
99 UCHAR MiniPortDeviceExtension[1]; /* must be the last entry */
100 } SCSI_PORT_DEVICE_EXTENSION, *PSCSI_PORT_DEVICE_EXTENSION;