перечисление 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 |