Статьи по программированию
примеры программного кода
Delphi, Kylix, C, C++, SQL, Visual Basic, Bash, Assembler, 1С
Qt, KOL, MFC, Rx Library, Windows, Linux, Mac OS
По ОС
-->Пример использования команды INQUIRY
Опубликовано codeLocker в 20.09.2008 в 13:04.
ОС: Windows Язык: Visual Basic Раздел: Системное • Работа с железом • SCSI/IDE
' объявляем необходимые константы
Private Const SCSI_INQUIRY = &H12
' теперь пишем свою функцию
Public Function Getlnfo (ByVal byAdapter As Integer, _
ByVal byTarget As Integer) As Boolean
Dim Exec As SRB_ExecSCSICmd
Dim hEventASPI As Long ' дескриптор объекта события
Dim IResult As Long ' значение, возвращаемое функцией
Dim byBuff(99) As Byte ' байтовый массив для буфера данных
Dim i As Integer
Private Const SCSI_INQUIRY = &H12
' теперь пишем свою функцию
Public Function Getlnfo (ByVal byAdapter As Integer, _
ByVal byTarget As Integer) As Boolean
Dim Exec As SRB_ExecSCSICmd
Dim hEventASPI As Long ' дескриптор объекта события
Dim IResult As Long ' значение, возвращаемое функцией
Dim byBuff(99) As Byte ' байтовый массив для буфера данных
Dim i As Integer
Пример использования команды INQUIRY
Опубликовано codeLocker в 20.09.2008 в 12:59.
ОС: Windows Язык: C++ • Visual C++ Раздел: Системное • Работа с железом • SCSI/IDE
BYTE Getlnfo (BYTE byAdapter, BYTEbyTarget, char* buffer)
{
// объявляем переменные
SRB_ExecSCSICmd Exec; // структура обработки команды ASPI
HANDLE hEventASPI; // объект события
BYTE byBuff [100] ; // буфер для хранения полученных данных
DWORD dwStatus;
// обнуляем структуру SRB_ExecSCSICmd и буфер
memset (SExec, 0, sizeof (SRB_ExecSCSICmd));
memset (byBuff, 0, 100);
// заполняем структуру данными
{
// объявляем переменные
SRB_ExecSCSICmd Exec; // структура обработки команды ASPI
HANDLE hEventASPI; // объект события
BYTE byBuff [100] ; // буфер для хранения полученных данных
DWORD dwStatus;
// обнуляем структуру SRB_ExecSCSICmd и буфер
memset (SExec, 0, sizeof (SRB_ExecSCSICmd));
memset (byBuff, 0, 100);
// заполняем структуру данными
Пример использования команды COPY
Опубликовано codeLocker в 20.09.2008 в 12:50.
ОС: Windows Язык: Visual Basic Раздел: Системное • Работа с железом • SCSI/IDE
' объявляем необходимые константы
Private Const SCSI_COPY = &Н18
' теперь пишем свою функцию
Public Function CopySeg (ByVal byAdapter As Integer, _
ByVal byTarget As Integer) As Boolean
Dim Exec As SRB_ExecSCSICmd
Dim hEventASPI As Long ' дескриптор объекта события
Dim IResult As Long ' значение, возвращаемое функцией
Dim Buffer(19) As Byte
' заполняем буфер
Buffer(0) = &H10 ' код функции COPY 02h и высший приоритет
Private Const SCSI_COPY = &Н18
' теперь пишем свою функцию
Public Function CopySeg (ByVal byAdapter As Integer, _
ByVal byTarget As Integer) As Boolean
Dim Exec As SRB_ExecSCSICmd
Dim hEventASPI As Long ' дескриптор объекта события
Dim IResult As Long ' значение, возвращаемое функцией
Dim Buffer(19) As Byte
' заполняем буфер
Buffer(0) = &H10 ' код функции COPY 02h и высший приоритет
Пример использования команды COPY
Опубликовано codeLocker в 20.09.2008 в 12:43.
ОС: Windows Язык: C++ • Visual C++ Раздел: Системное • Работа с железом • SCSI/IDE
BYTE CopySeg (BYTE byAdapter, BYTE byTarget)
{
// объявляем переменные
SRB_ExecSCSICmd Exec;
// структура обработки команды ASPI
HANDLE hEventASPI; // объект события DWORD dwStatus;
unsigned char Buffer[20];
// обнуляем структуру SRB_ExecSCSICmd и буфер
memset (&Exec, 0, sizeof (SRB_ExecSCSICmd)) ;
memset (SBuffer, 0, 20);
// заполняем буфер
Buffer[0] = 0x10; // код функции COPY 02h и высший приоритет
{
// объявляем переменные
SRB_ExecSCSICmd Exec;
// структура обработки команды ASPI
HANDLE hEventASPI; // объект события DWORD dwStatus;
unsigned char Buffer[20];
// обнуляем структуру SRB_ExecSCSICmd и буфер
memset (&Exec, 0, sizeof (SRB_ExecSCSICmd)) ;
memset (SBuffer, 0, 20);
// заполняем буфер
Buffer[0] = 0x10; // код функции COPY 02h и высший приоритет
Пример использования команды CHANGE DEFINITION
Опубликовано codeLocker в 20.09.2008 в 12:30.
ОС: Windows Язык: Visual Basic Раздел: Системное • Работа с железом • SCSI/IDE
' объявляем необходимые константы
Private Const SCSI_CHANGE_DEF = &H40
Private Const SC_EXEC_J3CSI_CMD = &H2
Private Const SS_PENDING = &H0
Private Const SS_COMP = &H1
Private Const SENSE_LEN =14
Private Const SRB_DIR_OUT = &HA
Private Const SRB_EVENT_NOTIFY = SH40
Private Const INFINITE = &HFFFF
' объявляем структуры SRB_ExecSCSICmd и SECURITY_ATTRIBUTES
Private Type SRB_ExecSCSICmd
SRB_Cmd As Byte
SRB_Status As Byte
SRB_HaId As Byte
SRB_Flags As Byte
SRB_Hdr_Rsvd As Long
SRB_Target As Byte
SRB_Lun As Byte
Private Const SCSI_CHANGE_DEF = &H40
Private Const SC_EXEC_J3CSI_CMD = &H2
Private Const SS_PENDING = &H0
Private Const SS_COMP = &H1
Private Const SENSE_LEN =14
Private Const SRB_DIR_OUT = &HA
Private Const SRB_EVENT_NOTIFY = SH40
Private Const INFINITE = &HFFFF
' объявляем структуры SRB_ExecSCSICmd и SECURITY_ATTRIBUTES
Private Type SRB_ExecSCSICmd
SRB_Cmd As Byte
SRB_Status As Byte
SRB_HaId As Byte
SRB_Flags As Byte
SRB_Hdr_Rsvd As Long
SRB_Target As Byte
SRB_Lun As Byte
Спонсоры проекта:
Навигация
Сейчас на сайте
Сейчас на сайте 0 пользователей и 1 гость.
Статистика
Всего материалов: 1387