102 UCHAR VendorId[4] = {
'1',
'0',
'4',
'b' };
103 UCHAR DeviceId[4] = {
'1',
'0',
'4',
'0' };
105 DebugPrint((
TRACE,
"\n BusLogic - Inside the DriverEntry function \n"));
110 ((
PUCHAR) & hwInitializationData)[
i] = 0;
140 hwInitializationData.
VendorId = &VendorId;
142 hwInitializationData.
DeviceId = &DeviceId;
157 DebugPrint((
TRACE,
"\n BusLogic - Calling the ScsiPortInitialize Routine\n"));
161 &hwInitializationData,
164 DebugPrint((
TRACE,
"\n BusLogic - Exiting the DriverEntry function \n"));
217 accessRange = &((*(ConfigInfo->AccessRanges))[0]);
221 ConfigInfo->WmiDataProvider =
FALSE;
225 if ((*ConfigInfo->AccessRanges)[0].RangeLength != 0)
231 ConfigInfo->SystemIoBusNumber,
236 DebugPrint((
INFO,
"\n BusLogic - Validate Range function succeeded \n"));
244 ConfigInfo->SystemIoBusNumber,
251 DebugPrint((
INFO,
"\n BusLogic - Get Device Base function succeeded \n"));
271 ConfigInfo->NumberOfBuses = 1;
275 ConfigInfo->ScatterGather =
TRUE;
277 ConfigInfo->ScatterGather =
FALSE;
280 ConfigInfo->Master =
TRUE;
281 ConfigInfo->NeedPhysicalAddresses =
TRUE;
282 ConfigInfo->Dma32BitAddresses =
TRUE;
286 ConfigInfo->TaggedQueuing =
TRUE;
288 ConfigInfo->TaggedQueuing =
FALSE;
292 ConfigInfo->AlignmentMask = 0x0;
351 &ch,
sizeof(ch),
NULL, 0) < 0) {
433 DebugPrint((
TRACE,
"\n BusLogic - Inside ProbeHostaAdapter function \n"));
449 InterruptRegister.
Bits.Reserved != 0)
465 if (GeometryRegister.
All == 0xFF)
return FALSE;
499 TimeoutCounter = 100;
500 while (--TimeoutCounter >= 0)
508 if (TimeoutCounter < 0)
518 TimeoutCounter = 10*10000;
519 while (--TimeoutCounter >= 0)
527 if (TimeoutCounter < 0)
532 TimeoutCounter = 10000;
533 while (--TimeoutCounter >= 0)
546 if (TimeoutCounter < 0)
584 DebugPrint((
TRACE,
"\n BusLogic - Inside BusLogic_CheckHostAdapter function \n"));
591 RequestedReplyLength =
sizeof(ExtendedSetupInformation);
594 &RequestedReplyLength,
595 sizeof(RequestedReplyLength),
596 &ExtendedSetupInformation,
597 sizeof(ExtendedSetupInformation))
598 !=
sizeof(ExtendedSetupInformation))
639 UCHAR *ParameterPointer = (
UCHAR *) ParameterData;
643 int ReplyBytes = 0,
Result;
657 TimeoutCounter = 10000;
658 while (--TimeoutCounter >= 0)
668 if (TimeoutCounter < 0)
680 TimeoutCounter = 10000;
698 if (InterruptRegister.
Bits.CommandComplete)
709 if (TimeoutCounter < 0)
731 switch (OperationCode)
737 TimeoutCounter = 60*10000;
741 TimeoutCounter = 10000;
749 while (--TimeoutCounter >= 0)
753 if (InterruptRegister.
Bits.CommandComplete)
775 if (TimeoutCounter < 0)
857 UCHAR *TargetPointer, Character;
866 &BoardID,
sizeof(BoardID))
886 RequestedReplyLength =
sizeof(SetupInformation);
889 &RequestedReplyLength,
890 sizeof(RequestedReplyLength),
892 sizeof(SetupInformation))
893 !=
sizeof(SetupInformation))
895 DebugPrint((
ERROR,
"\n BusLogic - Failure: INQUIRE SETUP INFORMATION\n"));
900 RequestedReplyLength =
sizeof(ExtendedSetupInformation);
903 &RequestedReplyLength,
904 sizeof(RequestedReplyLength),
905 &ExtendedSetupInformation,
906 sizeof(ExtendedSetupInformation))
907 !=
sizeof(ExtendedSetupInformation))
909 DebugPrint((
ERROR,
"\n BusLogic - Failure: INQUIRE EXTENDED SETUP INFORMATION\n"));
914 FirmwareVersion3rdDigit =
'\0';
921 &FirmwareVersion3rdDigit,
922 sizeof(FirmwareVersion3rdDigit))
923 !=
sizeof(FirmwareVersion3rdDigit))
925 DebugPrint((
ERROR,
"\n BusLogic - Failure: INQUIRE FIRMWARE 3RD DIGIT\n"));
931 RequestedReplyLength =
sizeof(HostAdapterModelNumber);
934 &RequestedReplyLength,
935 sizeof(RequestedReplyLength),
936 &HostAdapterModelNumber,
937 sizeof(HostAdapterModelNumber))
938 !=
sizeof(HostAdapterModelNumber))
940 DebugPrint((
ERROR,
"\n BusLogic - Failure: INQUIRE HOST ADAPTER MODEL NUMBER\n"));
951 *TargetPointer++ =
'B';
952 *TargetPointer++ =
'T';
953 *TargetPointer++ =
'-';
954 for (
i = 0;
i <
sizeof(HostAdapterModelNumber);
i++)
956 Character = HostAdapterModelNumber[
i];
957 if (Character ==
' ' || Character ==
'\0')
break;
958 *TargetPointer++ = Character;
960 *TargetPointer++ =
'\0';
965 *TargetPointer++ =
'.';
967 if (FirmwareVersion3rdDigit !=
' ' && FirmwareVersion3rdDigit !=
'\0')
968 *TargetPointer++ = FirmwareVersion3rdDigit;
969 *TargetPointer =
'\0';
978 &FirmwareVersionLetter,
979 sizeof(FirmwareVersionLetter))
980 !=
sizeof(FirmwareVersionLetter))
982 DebugPrint((
ERROR,
"\n BusLogic - Failure: INQUIRE FIRMWARE VERSION LETTER\n"));
985 if (FirmwareVersionLetter !=
' ' && FirmwareVersionLetter !=
'\0')
987 *TargetPointer++ = FirmwareVersionLetter;
989 *TargetPointer =
'\0';
1020 if (ExtendedSetupInformation.
Misc.LevelSensitiveInterrupt)
1049 &PCIHostAdapterInformation,
1050 sizeof(PCIHostAdapterInformation))
1051 !=
sizeof(PCIHostAdapterInformation))
1053 DebugPrint((
ERROR,
"\n BusLogic - Failure: INQUIRE PCI HOST ADAPTER INFORMATION\n"));
1071 FetchHostAdapterLocalRAMRequest.
ByteCount =
sizeof(AutoSCSIData);
1074 &FetchHostAdapterLocalRAMRequest,
1075 sizeof(FetchHostAdapterLocalRAMRequest),
1077 sizeof(AutoSCSIData))
1078 !=
sizeof(AutoSCSIData))
1080 DebugPrint((
ERROR,
"\n BusLogic - Failure: FETCH HOST ADAPTER LOCAL RAM\n"));
1192 UCHAR RoundRobinModeRequest;
1193 UCHAR SetCCBFormatRequest;
1194 int TargetID, LunID;
1249 &ExtendedMailboxRequest,
1250 sizeof(ExtendedMailboxRequest),
1254 DebugPrint((
ERROR,
"\n BusLogic - Failure: MAILBOX INITIALIZATION\n"));
1268 &RoundRobinModeRequest,
1269 sizeof(RoundRobinModeRequest),
1274 DebugPrint((
ERROR,
"\n BusLogic - Failure: ENABLE STRICT ROUND ROBIN MODE\n"));
1287 &SetCCBFormatRequest,
1288 sizeof(SetCCBFormatRequest),
1356 sizeof(InstalledDevices))
1357 !=
sizeof(InstalledDevices))
1359 DebugPrint((
ERROR,
"\n BusLogic - Failure: INQUIRE TARGET DEVICES\n"));
1369 RequestedReplyLength =
sizeof(SetupInformation);
1372 &RequestedReplyLength,
1373 sizeof(RequestedReplyLength),
1374 &SetupInformation,
sizeof(SetupInformation))
1375 !=
sizeof(SetupInformation))
1377 DebugPrint((
ERROR,
"\n BusLogic - Failure: INQUIRE SETUP INFORMATION\n"));
1403 RequestedReplyLength =
sizeof(SynchronousPeriod);
1406 &RequestedReplyLength,
1407 sizeof(RequestedReplyLength),
1409 sizeof(SynchronousPeriod))
1410 !=
sizeof(SynchronousPeriod))
1412 DebugPrint((
ERROR,
"\n BusLogic - Failure: INQUIRE SYNCHRONOUS PERIOD\n"));
1428 CCB->DataDirection = 0;
1431 CCB->CDB_Length = 0;
1432 CCB->SenseDataLength = 0;
1433 CCB->DataLength = 0;
1434 CCB->DataPointer = 0;
1435 CCB->HostAdapterStatus = 0;
1436 CCB->TargetDeviceStatus = 0;
1438 CCB->LogicalUnit = 0;
1439 CCB->LegacyTagEnable = 0;
1440 CCB->LegacyQueueTag = 0;
1442 CCB->SenseDataPointer = 0;
1446 CCB->SerialNumber = 0;
1450 CCB->CompletionCode = 0;
1489 if (BusLogic_CDB_MaxLength < Srb->CdbLength)
1533 DebugPrint((
ERROR,
"\n BusLogic - Unable to write Outgoing Mailbox - "
1534 "Pausing for 1 second\n"));
1539 "Mailbox - Host Adapter Dead?\n"));
1611 " - No Outgoing Mailboxes\n",
ccb->SerialNumber,
1783 ULONG xferLength, remainLength;
1784 PVOID virtualAddress;
1789 remainLength = xferLength;
1798 if (
length > remainLength )
1800 CCB->ScatterGatherList[
i].SegmentByteCount =
length;
1803 if (
length >= remainLength)
1808 }
while ( remainLength > 0);
1819 virtualAddress = (
PVOID) & (
CCB->ScatterGatherList);
1823 (
PVOID)virtualAddress,
1829 CCB->DataLength =
CCB->ScatterGatherList[0].SegmentByteCount;
1830 CCB->DataPointer =
CCB->ScatterGatherList[0].SegmentDataPointer;
1876 CCB->CDB_Length = CDB_Length;
1878 CCB->HostAdapterStatus = 0;
1879 CCB->TargetDeviceStatus = 0;
1880 CCB->TargetID = TargetID;
1881 CCB->LogicalUnit = LogicalUnit;
1905 DebugPrint((
INFO,
"\n BusLogic - Tagged Queuing now active for Target %d\n",
1940 CCB->LegacyQueueTag = (
UCHAR)QueueTag;
2005 if (InterruptRegister.
Bits.InterruptValid)
2015 if (InterruptRegister.
Bits.ExternalBusReset)
2019 else if (InterruptRegister.
Bits.IncomingMailboxLoaded)
2023 else if (InterruptRegister.
Bits.CommandComplete)
2087 CCB->CompletionCode = CompletionCode;
2096 "Incoming Mailbox\n",
CCB->SerialNumber,
CCB->Status));
2163 srb =
CCB->SrbAddress;
2172 int TargetID =
CCB->TargetID, LunID;
2173 DebugPrint((
TRACE,
"\n BusLogic - Bus Device Reset CCB #%ld to Target "
2174 "%d Completed\n",
CCB->SerialNumber, TargetID));
2198 switch (
CCB->CompletionCode)
2204 "State\n",
CCB->SerialNumber,
CCB->TargetID));
2211 srb =
CCB->AbortSrb;
2228 CCB->SerialNumber,
CCB->TargetID));
2239 srb =
CCB->AbortSrb;
2249 DebugPrint((
ERROR,
"\n BusLogic - %x Command completed with error Host - "
2250 "%x Target %x \n", RealCdb->
CDB6GENERIC.OperationCode,
2251 CCB->HostAdapterStatus,
CCB->TargetDeviceStatus));
2254 CCB->HostAdapterStatus,
2255 CCB->TargetDeviceStatus,
2256 CCB->SenseDataLength);
2312 UCHAR SenseDataLength)
2325 UCHAR HostStatus = 0;
2332 switch(TargetDeviceStatus)
2357 switch (HostAdapterStatus)
2375 HostAdapterStatus));
2436 HostAdapterStatus));
2566 "Reset Pending\n", TargetID));
2571 DebugPrint((
WARNING,
"\n BusLogic - Sending Bus Device Reset CCB #%ld to Target %d\n",
2572 CCB->SerialNumber, TargetID));
2574 CCB->TargetID = TargetID;
2583 "Bus Device Reset\n"));
2683 ULONG AdjustedMaxControlType;
2703 DebugPrint((
TRACE,
"\n BusLogic - Inside HwAdapterControl function \n"));
void BusLogic_QueueCompletedCCB(PHW_DEVICE_EXTENSION deviceExtension, BusLogic_CCB_T *CCB)
BOOLEAN BusLogic_TargetDeviceInquiry(BusLogic_HostAdapter_T *HostAdapter)
BOOLEAN BusLogic_SendBusDeviceReset(IN PVOID HwDeviceExtension, PSCSI_REQUEST_BLOCK Srb)
void BusLogic_ScanIncomingMailboxes(PHW_DEVICE_EXTENSION deviceExtension)
BOOLEAN BusLogic_ReadHostAdapterConfiguration(BusLogic_HostAdapter_T *HostAdapter)
BOOLEAN NTAPI BT958HwInitialize(IN PVOID HwDeviceExtension)
int BusLogic_QueueCommand(IN PVOID HwDeviceExtension, IN PSCSI_REQUEST_BLOCK Srb, PBuslogic_CCB_T CCB)
BOOLEAN BusLogic_WriteOutgoingMailbox(PHW_DEVICE_EXTENSION deviceExtension, BusLogic_ActionCode_T ActionCode, BusLogic_CCB_T *CCB)
VOID BusLogic_InitializeCCB(PBuslogic_CCB_T CCB)
BOOLEAN BusLogic_HardwareResetHostAdapter(BusLogic_HostAdapter_T *HostAdapter, BOOLEAN HardReset)
BOOLEAN Buslogic_InitBT958(PHW_DEVICE_EXTENSION deviceExtension, PPORT_CONFIGURATION_INFORMATION ConfigInfo)
SCSI_ADAPTER_CONTROL_STATUS NTAPI BT958HwAdapterControl(IN PVOID HwDeviceExtension, IN SCSI_ADAPTER_CONTROL_TYPE ControlType, IN PVOID Parameters)
void BusLogic_ProcessCompletedCCBs(PHW_DEVICE_EXTENSION deviceExtension)
ULONG NTAPI BT958HwFindAdapter(IN PVOID HwDeviceExtension, IN PVOID Context, IN PVOID BusInformation, IN PCHAR ArgumentString, IN OUT PPORT_CONFIGURATION_INFORMATION ConfigInfo, OUT PBOOLEAN Again)
BOOLEAN NTAPI BT958HwStartIO(IN PVOID HwDeviceExtension, IN PSCSI_REQUEST_BLOCK Srb)
BOOLEAN NTAPI BT958HwInterrupt(IN PVOID HwDeviceExtension)
UCHAR BusLogic_ComputeResultCode(BusLogic_HostAdapter_T *HostAdapter, BusLogic_HostAdapterStatus_T HostAdapterStatus, BusLogic_TargetDeviceStatus_T TargetDeviceStatus, UCHAR SenseDataLength)
BOOLEAN NTAPI BT958HwResetBus(IN PVOID HwDeviceExtension, IN ULONG PathId)
BOOLEAN BusLogic_CheckHostAdapter(BusLogic_HostAdapter_T *HostAdapter)
BOOLEAN BusLogic_ProbeHostAdapter(BusLogic_HostAdapter_T *HostAdapter)
int BusLogic_Command(BusLogic_HostAdapter_T *HostAdapter, BusLogic_OperationCode_T OperationCode, void *ParameterData, int ParameterLength, void *ReplyData, int ReplyLength)
BOOLEAN BusLogic_InitializeHostAdapter(PHW_DEVICE_EXTENSION deviceExtension, PPORT_CONFIGURATION_INFORMATION ConfigInfo)
static void BusLogic_SoftReset(BusLogic_HostAdapter_T *HostAdapter)
@ BusLogic_ExtendedLUNFormatCCB
@ BusLogic_SimpleQueueTag
static UCHAR BusLogic_ReadStatusRegister(BusLogic_HostAdapter_T *HostAdapter)
#define BusLogic_CDB_MaxLength
#define BusLogic_DisableAutoReqSense
static void BusLogic_IncrementSizeBucket(BusLogic_CommandSizeBuckets_T CommandSizeBuckets, unsigned int Amount)
static BusLogic_HostAdapterBusType_T BusLogic_HostAdapterBusTypes[]
static void BusLogic_IncrementErrorCounter(unsigned short *ErrorCounter)
static void BusLogic_StartMailboxCommand(BusLogic_HostAdapter_T *HostAdapter)
@ BusLogic_InquirePCIHostAdapterInformation
@ BusLogic_DisableHostAdapterInterrupt
@ BusLogic_InquireExtendedSetupInformation
@ BusLogic_InitializeExtendedMailbox
@ BusLogic_InquireInstalledDevicesID8to15
@ BusLogic_InquireInstalledDevicesID0to7
@ BusLogic_ModifyIOAddress
@ BusLogic_InquireHostAdapterModelNumber
@ BusLogic_InquireTargetDevices
@ BusLogic_InquireFirmwareVersionLetter
@ BusLogic_EnableStrictRoundRobinMode
@ BusLogic_InquireSynchronousPeriod
@ BusLogic_FetchHostAdapterLocalRAM
@ BusLogic_InquireBoardID
@ BusLogic_InquireSetupInformation
@ BusLogic_InquireFirmwareVersion3rdDigit
@ BusLogic_InquireConfiguration
UCHAR BusLogic_HostAdapterModelNumber_T[5]
#define BUSLOGIC_MAXIMUM_TAGS
#define BusLogic_AutoSCSI_BaseOffset
@ BusLogic_InitiatorCCB_ScatterGather
@ BusLogic_BusDeviceReset
unsigned short BusLogic_InstalledDevices_T
struct BusLogic_ScatterGatherSegment BusLogic_ScatterGatherSegment_T
@ BusLogic_MailboxStartCommand
@ BusLogic_MailboxAbortCommand
@ BusLogic_OutgoingMailboxFree
#define BusLogic_ScatterGatherLimit
BusLogic_HostAdapterStatus_T
@ BusLogic_AbortQueueGenerated
@ BusLogic_UnsupportedMessageReceived
@ BusLogic_TargetDeviceReconnectedImproperly
@ BusLogic_InvalidCommandParameter
@ BusLogic_HostAdapterAssertedRST
@ BusLogic_LinkedCommandCompleted
@ BusLogic_HostAdapterAssertedBusDeviceReset
@ BusLogic_SCSIParityErrorDetected
@ BusLogic_OtherDeviceAssertedRST
@ BusLogic_LinkedCCBhasInvalidLUN
@ BusLogic_AutoRequestSenseFailed
@ BusLogic_LinkedCommandCompletedWithFlag
@ BusLogic_HostAdapterSoftwareError
@ BusLogic_InvalidOutgoingMailboxActionCode
@ BusLogic_SCSISelectionTimeout
@ BusLogic_CommandCompletedNormally
@ BusLogic_InvalidBusPhaseRequested
@ BusLogic_InvalidCommandOperationCode
@ BusLogic_TaggedQueuingMessageRejected
@ BusLogic_HostAdapterHardwareFailed
@ BusLogic_HostAdapterHardwareTimeoutError
@ BusLogic_TargetFailedResponseToATN
@ BusLogic_UnexpectedBusFree
static UCHAR BusLogic_ReadInterruptRegister(BusLogic_HostAdapter_T *HostAdapter)
static void BusLogic_InterruptReset(BusLogic_HostAdapter_T *HostAdapter)
UCHAR BusLogic_RequestedReplyLength_T
BusLogic_CompletionCode_T
@ BusLogic_CommandAbortedAtHostRequest
@ BusLogic_AbortedCommandNotFound
@ BusLogic_CommandCompletedWithError
@ BusLogic_CommandCompletedWithoutError
@ BusLogic_IncomingMailboxFree
BusLogic_TargetDeviceStatus_T
@ BusLogic_CheckCondition
#define BusLogic_DefaultBusSettleTime
@ BusLogic_NoDataTransfer
@ BusLogic_UncheckedDataTransfer
@ BusLogic_DataOutLengthChecked
@ BusLogic_DataInLengthChecked
UCHAR BusLogic_FirmwareVersion3rdDigit_T
static void BusLogic_IncrementByteCounter(BusLogic_ByteCounter_T *ByteCounter, unsigned int Amount)
UCHAR BusLogic_SynchronousPeriod_T[BusLogic_MaxTargetDevices]
struct BusLogic_CCB BusLogic_CCB_T
#define BusLogic_StrictRoundRobinMode
static void BusLogic_HardReset(BusLogic_HostAdapter_T *HostAdapter)
UCHAR BusLogic_FirmwareVersionLetter_T
#define BusLogic_MaxTaggedQueueDepth
static UCHAR BusLogic_ReadGeometryRegister(BusLogic_HostAdapter_T *HostAdapter)
#define BusLogic_MaxMailboxes
static void BusLogic_WriteCommandParameterRegister(BusLogic_HostAdapter_T *HostAdapter, UCHAR Value)
#define MAX_TRANSFER_SIZE
static UCHAR BusLogic_ReadDataInRegister(BusLogic_HostAdapter_T *HostAdapter)
char * strcat(char *DstString, const char *SrcString)
int strcmp(const char *String1, const char *String2)
char * strcpy(char *DstString, const char *SrcString)
struct _HW_DEVICE_EXTENSION HW_DEVICE_EXTENSION
VOID NTAPI ScsiPortCompleteRequest(IN PVOID HwDeviceExtension, IN UCHAR PathId, IN UCHAR TargetId, IN UCHAR Lun, IN UCHAR SrbStatus)
ULONG NTAPI ScsiPortInitialize(IN PVOID Argument1, IN PVOID Argument2, IN PHW_INITIALIZATION_DATA HwInitializationData, IN PVOID HwContext OPTIONAL)
SCSI_PHYSICAL_ADDRESS NTAPI ScsiPortGetPhysicalAddress(IN PVOID HwDeviceExtension, IN PSCSI_REQUEST_BLOCK Srb OPTIONAL, IN PVOID VirtualAddress, OUT ULONG *Length)
VOID __cdecl ScsiPortNotification(IN SCSI_NOTIFICATION_TYPE NotificationType, IN PVOID HwDeviceExtension, IN ...)
PVOID NTAPI ScsiPortGetUncachedExtension(IN PVOID HwDeviceExtension, IN PPORT_CONFIGURATION_INFORMATION ConfigInfo, IN ULONG NumberOfBytes)
BOOLEAN NTAPI ScsiPortValidateRange(IN PVOID HwDeviceExtension, IN INTERFACE_TYPE BusType, IN ULONG SystemIoBusNumber, IN SCSI_PHYSICAL_ADDRESS IoAddress, IN ULONG NumberOfBytes, IN BOOLEAN InIoSpace)
SCSI_PHYSICAL_ADDRESS NTAPI ScsiPortConvertUlongToPhysicalAddress(IN ULONG_PTR UlongAddress)
VOID NTAPI ScsiPortLogError(IN PVOID HwDeviceExtension, IN PSCSI_REQUEST_BLOCK Srb OPTIONAL, IN UCHAR PathId, IN UCHAR TargetId, IN UCHAR Lun, IN ULONG ErrorCode, IN ULONG UniqueId)
VOID NTAPI ScsiPortMoveMemory(IN PVOID WriteBuffer, IN PVOID ReadBuffer, IN ULONG Length)
VOID NTAPI ScsiPortStallExecution(IN ULONG Delay)
PSCSI_REQUEST_BLOCK NTAPI ScsiPortGetSrb(IN PVOID DeviceExtension, IN UCHAR PathId, IN UCHAR TargetId, IN UCHAR Lun, IN LONG QueueTag)
PVOID NTAPI ScsiPortGetVirtualAddress(IN PVOID HwDeviceExtension, IN SCSI_PHYSICAL_ADDRESS PhysicalAddress)
PVOID NTAPI ScsiPortGetDeviceBase(IN PVOID HwDeviceExtension, IN INTERFACE_TYPE BusType, IN ULONG SystemIoBusNumber, IN SCSI_PHYSICAL_ADDRESS IoAddress, IN ULONG NumberOfBytes, IN BOOLEAN InIoSpace)
_In_ PSCSI_REQUEST_BLOCK Srb
_In_ ULONG _In_ BOOLEAN _In_ ULONG _In_ UCHAR PathId
DRIVER_INITIALIZE DriverEntry
#define SRB_STATUS_PHASE_SEQUENCE_FAILURE
@ ScsiQuerySupportedControlTypes
#define SRB_STATUS_NO_HBA
#define SRB_FUNCTION_RESET_DEVICE
#define SRB_STATUS_BUS_RESET
#define SRB_STATUS_UNEXPECTED_BUS_FREE
@ ScsiAdapterControlSuccess
@ ScsiAdapterControlUnsuccessful
enum _SCSI_ADAPTER_CONTROL_TYPE SCSI_ADAPTER_CONTROL_TYPE
enum _SCSI_ADAPTER_CONTROL_STATUS SCSI_ADAPTER_CONTROL_STATUS
#define SRB_FUNCTION_EXECUTE_SCSI
#define SRB_FLAGS_DATA_OUT
#define SRB_STATUS_ABORTED
#define SRB_FLAGS_NO_DATA_TRANSFER
#define SRB_STATUS_PENDING
struct _HW_INITIALIZATION_DATA HW_INITIALIZATION_DATA
#define SRB_FUNCTION_RESET_BUS
#define SP_INTERNAL_ADAPTER_ERROR
#define SRB_STATUS_AUTOSENSE_VALID
#define SRB_FLAGS_DISABLE_AUTOSENSE
#define ScsiPortConvertPhysicalAddressToUlong(Address)
#define SRB_FLAGS_DATA_IN
#define SRB_STATUS_ABORT_FAILED
#define SRB_STATUS_SELECTION_TIMEOUT
#define SRB_FLAGS_UNSPECIFIED_DIRECTION
#define SP_RETURN_NOT_FOUND
#define SRB_STATUS_PARITY_ERROR
#define SRB_STATUS_REQUEST_SENSE_FAILED
#define SRB_STATUS_SUCCESS
#define SRB_STATUS_INVALID_REQUEST
#define SRB_FUNCTION_ABORT_COMMAND
_Must_inspect_result_ _In_ PFLT_PORT _In_ ULONG _Out_writes_bytes_opt_ ReplyLength PVOID _Inout_opt_ PULONG ReplyLength
GLuint GLsizei GLsizei * length
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
static BYTE StatusRegister
_Must_inspect_result_ _In_ PVOID _In_ struct _HW_INITIALIZATION_DATA _In_ PVOID HwContext
unsigned short WidePermitted
unsigned short DisconnectPermitted
unsigned short FastPermitted
unsigned short UltraPermitted
UCHAR ParityCheckingEnabled
unsigned short SynchronousPermitted
UCHAR FirmwareVersion1stDigit
UCHAR FirmwareVersion2ndDigit
struct BusLogic_CCB * Next
BOOLEAN ExtendedLUNSupport
unsigned short TaggedQueuingPermitted
BusLogic_CCB_T * BusDeviceResetPendingCCB[BusLogic_MaxTargetDevices]
unsigned short DriverScatterGatherLimit
unsigned short DisconnectPermitted
BusLogic_OutgoingMailbox_T * FirstOutgoingMailbox
unsigned short WidePermitted
BOOLEAN ExtendedTranslationEnabled
BusLogic_OutgoingMailbox_T * NextOutgoingMailbox
BOOLEAN LevelSensitiveInterrupt
BOOLEAN LowByteTerminated
UCHAR SynchronousPeriod[BusLogic_MaxTargetDevices]
unsigned short BusSettleTime
BOOLEAN HostDifferentialSCSI
BusLogic_IncomingMailbox_T * LastIncomingMailbox
BOOLEAN ParityCheckingEnabled
BusLogic_IncomingMailbox_T * FirstIncomingMailbox
BOOLEAN HostAdapterInitialized
BusLogic_TargetStatistics_T TargetStatistics[BusLogic_MaxTargetDevices]
BOOLEAN TerminationInfoValid
BusLogic_OutgoingMailbox_T * LastOutgoingMailbox
BusLogic_CCB_T * FirstCompletedCCB
BusLogic_IncomingMailbox_T * NextIncomingMailbox
UCHAR SynchronousOffset[BusLogic_MaxTargetDevices]
unsigned short UltraPermitted
unsigned short HostAdapterQueueDepth
BOOLEAN StrictRoundRobinModeSupport
BOOLEAN HighByteTerminated
BusLogic_BusAddress_T BIOS_Address
BOOLEAN ProcessCompletedCCBsActive
UCHAR ActiveCommandsPerLun[BusLogic_MaxTargetDevices][BusLogic_MaxLogicalUnits]
BusLogic_HostAdapterBusType_T HostAdapterBusType
volatile BOOLEAN HostAdapterCommandCompleted
unsigned int CommandsSinceReset[BusLogic_MaxTargetDevices]
BOOLEAN HostAdapterInternalError
unsigned short FastPermitted
UCHAR ActiveCommandsPerTarget[BusLogic_MaxTargetDevices]
unsigned short SynchronousPermitted
BusLogic_CCB_T * LastCompletedCCB
BusLogic_TargetFlags_T TargetFlags[BusLogic_MaxTargetDevices]
unsigned short HostAdapterScatterGatherLimit
BOOLEAN HostAdapterExternalReset
BusLogic_BusAddress_T CCB
BusLogic_BusAddress_T CCB
BOOLEAN WideTransfersActive
BOOLEAN TaggedQueuingActive
BOOLEAN WideTransfersSupported
BOOLEAN CommandSuccessfulFlag
BOOLEAN TaggedQueuingSupported
unsigned int CommandsCompleted
unsigned int WriteCommands
unsigned int ReadCommands
unsigned short BusDeviceResetsAttempted
unsigned int CommandsAttempted
unsigned short BusDeviceResetsCompleted
unsigned short BusDeviceResetsRequested
SCSI_PHYSICAL_ADDRESS RangeStart
INTERFACE_TYPE AdapterInterfaceType
PNONCACHED_EXTENSION NoncachedExtension
BusLogic_HostAdapter_T hcs
PHW_INTERRUPT HwInterrupt
PHW_ADAPTER_CONTROL HwAdapterControl
BOOLEAN MultipleRequestPerLu
BOOLEAN NeedPhysicalAddresses
ULONG HwInitializationDataSize
PHW_INITIALIZE HwInitialize
ULONG DeviceExtensionSize
INTERFACE_TYPE AdapterInterfaceType
PHW_FIND_ADAPTER HwFindAdapter
ULONG NumberOfAccessRanges
UCHAR MailboxIn[BusLogic_MaxMailboxes *sizeof(BusLogic_IncomingMailbox_T)]
UCHAR MailboxOut[BusLogic_MaxMailboxes *sizeof(BusLogic_OutgoingMailbox_T)]
UCHAR SenseInfoBufferLength
struct _SCSI_REQUEST_BLOCK * NextSrb
OUT BOOLEAN SupportedTypeList[0]
struct BusLogic_InterruptRegister::@1343 Bits
struct _CDB::_CDB6GENERIC CDB6GENERIC
struct _CDB::_CDB6INQUIRY CDB6INQUIRY
_In_ ULONG ParameterLength
_In_ WDFCOLLECTION _In_ ULONG Index
_Must_inspect_result_ _In_ WDFDEVICE _In_ DEVICE_REGISTRY_PROPERTY _In_ ULONG BufferLength
_In_ WDFDEVICE _In_ PPNP_BUS_INFORMATION BusInformation
_Must_inspect_result_ _In_ PDRIVER_OBJECT DriverObject
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_INTERRUPT_CONFIG Configuration
_Must_inspect_result_ _In_ WDFQUEUE _In_opt_ WDFREQUEST _In_opt_ WDFFILEOBJECT _Inout_opt_ PWDF_REQUEST_PARAMETERS Parameters
_At_(*)(_In_ PWSK_CLIENT Client, _In_opt_ PUNICODE_STRING NodeName, _In_opt_ PUNICODE_STRING ServiceName, _In_opt_ ULONG NameSpace, _In_opt_ GUID *Provider, _In_opt_ PADDRINFOEXW Hints, _Outptr_ PADDRINFOEXW *Result, _In_opt_ PEPROCESS OwningProcess, _In_opt_ PETHREAD OwningThread, _Inout_ PIRP Irp Result)(Mem)) NTSTATUS(WSKAPI *PFN_WSK_GET_ADDRESS_INFO
_Inout_opt_ PVOID Parameter