2 * SCSI_PORT_TIMER_STATES
5 * An enumeration containing the states in the timer DFA
8 #define VERSION "0.0.3"
11 #define PAGE_ROUND_UP(x) ( (((ULONG_PTR)x)%PAGE_SIZE) ? ((((ULONG_PTR)x)&(~(PAGE_SIZE-1)))+PAGE_SIZE) : ((ULONG_PTR)x) )
14 #define ROUND_UP(N, S) ((((N) + (S) - 1) / (S)) * (S))
17 #define TAG(A, B, C, D) (ULONG)(((A)<<0) + ((B)<<8) + ((C)<<16) + ((D)<<24))
19 typedef enum _SCSI_PORT_TIMER_STATES
23 IDETimerResetWaitForBusyNegate
,
24 IDETimerResetWaitForDrdyAssert
25 } SCSI_PORT_TIMER_STATES
;
28 typedef struct _SCSI_PORT_DEVICE_BASE
34 SCSI_PHYSICAL_ADDRESS IoAddress
;
35 ULONG SystemIoBusNumber
;
36 } SCSI_PORT_DEVICE_BASE
, *PSCSI_PORT_DEVICE_BASE
;
39 typedef struct _SCSI_PORT_LUN_EXTENSION
47 BOOLEAN DeviceClaimed
;
48 PDEVICE_OBJECT DeviceObject
;
50 INQUIRYDATA InquiryData
;
52 ULONG PendingIrpCount
;
60 UCHAR MiniportLunExtension
[1]; /* must be the last entry */
61 } SCSI_PORT_LUN_EXTENSION
, *PSCSI_PORT_LUN_EXTENSION
;
65 * SCSI_PORT_DEVICE_EXTENSION
68 * First part of the port objects device extension. The second
69 * part is the miniport-specific device extension.
72 typedef struct _SCSI_PORT_DEVICE_EXTENSION
75 ULONG MiniPortExtensionSize
;
76 PPORT_CONFIGURATION_INFORMATION PortConfig
;
82 PKINTERRUPT Interrupt
;
84 SCSI_PORT_TIMER_STATES TimerState
;
87 LIST_ENTRY DeviceBaseListHead
;
89 ULONG LunExtensionSize
;
90 LIST_ENTRY LunExtensionListHead
;
92 ULONG SrbExtensionSize
;
94 PIO_SCSI_CAPABILITIES PortCapabilities
;
96 PDEVICE_OBJECT DeviceObject
;
97 PCONTROLLER_OBJECT ControllerObject
;
99 PHW_STARTIO HwStartIo
;
100 PHW_INTERRUPT HwInterrupt
;
103 /* DMA related stuff */
104 PADAPTER_OBJECT AdapterObject
;
105 ULONG MapRegisterCount
;
107 PHYSICAL_ADDRESS PhysicalAddress
;
108 PVOID VirtualAddress
;
109 RTL_BITMAP SrbExtensionAllocMap
;
110 ULONG MaxSrbExtensions
;
111 ULONG CurrentSrbExtensions
;
112 ULONG CommonBufferLength
;
114 LIST_ENTRY PendingIrpListHead
;
116 ULONG PendingIrpCount
;
117 ULONG ActiveIrpCount
;
119 UCHAR MiniPortDeviceExtension
[1]; /* must be the last entry */
120 } SCSI_PORT_DEVICE_EXTENSION
, *PSCSI_PORT_DEVICE_EXTENSION
;
122 typedef struct _SCSI_PORT_SCAN_ADAPTER
125 IO_STATUS_BLOCK IoStatusBlock
;
127 PSCSI_PORT_LUN_EXTENSION LunExtension
;
131 SCSI_REQUEST_BLOCK Srb
;
132 UCHAR DataBuffer
[256];
134 } SCSI_PORT_SCAN_ADAPTER
, *PSCSI_PORT_SCAN_ADAPTER
;