2 * SCSI_PORT_TIMER_STATES
5 * An enumeration containing the states in the timer DFA
8 #define VERSION "0.0.3"
10 #define PAGE_ROUND_UP(x) ( (((ULONG_PTR)x)%PAGE_SIZE) ? ((((ULONG_PTR)x)&(~(PAGE_SIZE-1)))+PAGE_SIZE) : ((ULONG_PTR)x) )
11 #define ROUND_UP(N, S) ((((N) + (S) - 1) / (S)) * (S))
13 #define TAG(A, B, C, D) (ULONG)(((A)<<0) + ((B)<<8) + ((C)<<16) + ((D)<<24))
15 typedef enum _SCSI_PORT_TIMER_STATES
19 IDETimerResetWaitForBusyNegate
,
20 IDETimerResetWaitForDrdyAssert
21 } SCSI_PORT_TIMER_STATES
;
24 typedef struct _SCSI_PORT_DEVICE_BASE
30 SCSI_PHYSICAL_ADDRESS IoAddress
;
31 ULONG SystemIoBusNumber
;
32 } SCSI_PORT_DEVICE_BASE
, *PSCSI_PORT_DEVICE_BASE
;
35 typedef struct _SCSI_PORT_LUN_EXTENSION
43 BOOLEAN DeviceClaimed
;
44 PDEVICE_OBJECT DeviceObject
;
46 INQUIRYDATA InquiryData
;
48 ULONG PendingIrpCount
;
56 UCHAR MiniportLunExtension
[1]; /* must be the last entry */
57 } SCSI_PORT_LUN_EXTENSION
, *PSCSI_PORT_LUN_EXTENSION
;
61 * SCSI_PORT_DEVICE_EXTENSION
64 * First part of the port objects device extension. The second
65 * part is the miniport-specific device extension.
68 typedef struct _SCSI_PORT_DEVICE_EXTENSION
71 ULONG MiniPortExtensionSize
;
72 PPORT_CONFIGURATION_INFORMATION PortConfig
;
78 PKINTERRUPT Interrupt
;
80 SCSI_PORT_TIMER_STATES TimerState
;
83 LIST_ENTRY DeviceBaseListHead
;
85 ULONG LunExtensionSize
;
86 LIST_ENTRY LunExtensionListHead
;
88 ULONG SrbExtensionSize
;
90 PIO_SCSI_CAPABILITIES PortCapabilities
;
92 PDEVICE_OBJECT DeviceObject
;
93 PCONTROLLER_OBJECT ControllerObject
;
95 PHW_STARTIO HwStartIo
;
96 PHW_INTERRUPT HwInterrupt
;
99 /* DMA related stuff */
100 PADAPTER_OBJECT AdapterObject
;
101 ULONG MapRegisterCount
;
103 PHYSICAL_ADDRESS PhysicalAddress
;
104 PVOID VirtualAddress
;
105 RTL_BITMAP SrbExtensionAllocMap
;
106 ULONG MaxSrbExtensions
;
107 ULONG CurrentSrbExtensions
;
108 ULONG CommonBufferLength
;
110 LIST_ENTRY PendingIrpListHead
;
112 ULONG PendingIrpCount
;
113 ULONG ActiveIrpCount
;
115 UCHAR MiniPortDeviceExtension
[1]; /* must be the last entry */
116 } SCSI_PORT_DEVICE_EXTENSION
, *PSCSI_PORT_DEVICE_EXTENSION
;
118 typedef struct _SCSI_PORT_SCAN_ADAPTER
121 IO_STATUS_BLOCK IoStatusBlock
;
123 PSCSI_PORT_LUN_EXTENSION LunExtension
;
127 SCSI_REQUEST_BLOCK Srb
;
128 UCHAR DataBuffer
[256];
130 } SCSI_PORT_SCAN_ADAPTER
, *PSCSI_PORT_SCAN_ADAPTER
;