Поделиться через


перечисление SPB_TRANSFER_DIRECTION (spb.h)

Перечисление SPB_TRANSFER_DIRECTION описывает направление (чтение или запись) одной передачи в последовательности передачи ввода-вывода.

Синтаксис

typedef enum SPB_TRANSFER_DIRECTION {
  SpbTransferDirectionNone,
  SpbTransferDirectionFromDevice,
  SpbTransferDirectionToDevice,
  SpbTransferDirectionMax
}  *PSPB_TRANSFER_DIRECTION;

Константы

 
SpbTransferDirectionNone
Направление передачи данных не определено.
SpbTransferDirectionFromDevice
Направление передачи данных — от устройства к системной памяти (считывается с устройства).
SpbTransferDirectionToDevice
Направление передачи данных — от системной памяти к устройству (запись на устройство).
SpbTransferDirectionMax
Зарезервировано для использования операционной системой.

Замечания

Значения в этом перечислении указывают направления отдельных передач в последовательности передачи ввода-вывода. Входной буфер для запроса элемента управления ввода-вывода IOCTL_SPB_EXECUTE_SEQUENCE — это SPB_TRANSFER_LIST структура, указывающая список передачи для последовательности. Каждая передача описывается структурой SPB_TRANSFER_LIST_ENTRY, содержащей параметры передачи, которые включают направление передачи. Направление передачи — spbTransferDirectionFromDevice для операции чтения и spbTransferDirectionToDevice для операции записи.

Драйвер контроллера SPB может вызвать метод SpbRequestGetParameters, чтобы получить набор параметров, относящихся к spB, из запроса ввода-вывода. Одним из этих параметров является значение перечисления SPB_TRANSFER_DIRECTION, указывающее направление передачи предыдущего запроса ввода-вывода. Драйвер контроллера SPB может использовать это значение направления, чтобы определить, требуется ли текущий запрос на чтение или запись (IRP_MJ_READ или IRP_MJ_WRITE) изменения направления передачи на шине.

Кроме того, SpbRequestGetParameters извлекает значение позиции, указывающее относительную позицию запроса на чтение или запись в списке передачи для последовательности нескольких запросов. Если запрос на чтение или запрос записи имеет значение позиции SpbRequestSequencePositionSingle или SpbRequestSequencePositionFirst, значение направления предыдущей передачи SpbTransferDirectionNone (то есть нет предыдущего направления передачи). Для запроса на чтение или запись с значением позиции SpbRequestSequencePositionMiddle или SpbRequestSequencePositionLast, значение направления указывает, является ли предыдущая передача чтением или записью. Для запроса разблокировки (IOCTL_SPB_UNLOCK_CONTROLLER) с позицией SpbRequestSequencePositionLast, значение направления указывает, была ли последняя передача в последовательности чтением или записью.

Запрос блокировки (IOCTL_SPB_LOCK_CONTROLLER) не имеет предыдущего направления. Аналогичным образом, запрос управления ввода-вывода, передаваемый в функцию обратного вызова EvtSpbControllerIoOther, не имеет предыдущего направления. Для любого из этих запросов предыдущее значение направления, полученное SpbRequestGetParameters, SpbTransferDirectionNone.

Требования

Требование Ценность
минимальные поддерживаемые клиентские Поддерживается начиная с Windows 8.
заголовка spb.h

См. также