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


Заголовок ntddscsi.h

Этот заголовок используется хранилищем. Дополнительные сведения см. в следующем разделе:

ntddscsi.h содержит следующие интерфейсы программирования:

IoCTLs

 
IOCTL_ATA_PASS_THROUGH

Позволяет приложению отправлять почти любую команду ATA на целевое устройство с указанными ниже ограничениями: _If драйвер класса для целевого типа устройства существует, приложение должно отправить запрос драйверу класса.
IOCTL_ATA_PASS_THROUGH_DIRECT

Узнайте, как IOCTL_ATA_PASS_THROUGH_DIRECT позволяет приложению отправлять практически любую команду ATA на целевое устройство.
IOCTL_MINIPORT_PROCESS_SERVICE_IRP

Этот IOCTL используется приложением в пользовательском режиме или драйвером режима ядра, который требует уведомления, когда что-то интересное происходит в виртуальном минипорте.
IOCTL_MINIPORT_SIGNATURE_ENDURANCE_INFO

IOCTL_MINIPORT_SIGNATURE_ENDURANCE_INFO — это системная сигнатура, используемая в сочетании с кодом элемента управления IOCTL_SCSI_MINIPORT, чтобы запросить, чтобы минипорт возвращал данные о выносливости для целевого устройства.
IOCTL_MINIPORT_SIGNATURE_SET_PROTOCOL

IOCTL_MINIPORT_SIGNATURE_SET_PROTOCOL — это сигнатура, используемая в сочетании с кодом элемента управления IOCTL_SCSI_MINIPORT для отправки данных, относящихся к протоколу, в мини-порт.
IOCTL_MPIO_PASS_THROUGH_PATH

Этот код элемента управления ввода-вывода позволяет приложению или драйверу ядра отправлять команду SCSI в назначенный реальный LUN.
IOCTL_MPIO_PASS_THROUGH_PATH_DIRECT

Узнайте, как этот код управления ввода-вывода позволяет приложению или драйверу ядра отправлять команду SCSI в назначенный реальный LUN.
IOCTL_MPIO_PASS_THROUGH_PATH_DIRECT_EX

Запрос кода IOCTL_MPIO_PASS_THROUGH_PATH_DIRECT_EX — это расширенная версия запроса IOCTL_MPIO_PASS_THROUGH_PATH_DIRECT. Этот запрос обеспечивает поддержку двунаправленной передачи данных и позволяет блоку данных команд (CDB) > 16 байт.
IOCTL_MPIO_PASS_THROUGH_PATH_EX

Запрос кода IOCTL_MPIO_PASS_THROUGH_PATH_EX — это расширенная версия запроса IOCTL_MPIO_PASS_THROUGH_PATH. Этот запрос обеспечивает поддержку двунаправленной передачи данных и позволяет блоку данных команд (CDB) > 16 байт.
IOCTL_SCSI_GET_ADDRESS

Возвращает сведения об адресе, такие как идентификатор целевого объекта (TID) и номер логического блока (LUN) определенного целевого объекта SCSI.
IOCTL_SCSI_GET_CAPABILITIES

Возвращает возможности и ограничения базовой SCSI HBA.
IOCTL_SCSI_GET_INQUIRY_DATA

Возвращает данные запроса SCSI для всех устройств на заданном адаптере шины узла SCSI (HBA).
IOCTL_SCSI_MINIPORT

Отправляет специальную функцию управления в мини-порт HBA.
IOCTL_SCSI_MINIPORT_DIAGNOSTIC

Код элемента управления IOCTL_SCSI_MINIPORT_DIAGNOSTIC используется для выполнения диагностического запроса к Минипорту.
IOCTL_SCSI_MINIPORT_HYBRID

Код элемента управления IOCTL_SCSI_MINIPORT_HYBRID отправляет запрос на управление гибридным диском в конкретный минипорт-драйвер HBA.
IOCTL_SCSI_MINIPORT_NVCACHE

Операции управления кэшем NV, определенные здесь, можно вызвать с помощью кода приложения в пользовательском режиме, работающего с правами администратора, с помощью DeviceIoControl и кода элемента управления IOCTL_SCSI_MINIPORT.
IOCTL_SCSI_PASS_THROUGH

Позволяет приложению отправлять почти любую команду SCSI на целевое устройство с помощью следующих ограничений: команды Multitarget, такие как COPY, запрещены. Двунаправленные операции передачи данных не поддерживаются. Если существует драйвер класса для целевого типа устройства, запрос должен быть отправлен в этот драйвер класса. Таким образом, приложение может отправлять этот запрос непосредственно в драйвер системного порта для целевой логической единицы (LU) только в том случае, если для типа устройства, подключенного к этому LU, нет драйвера класса. Драйвер системного порта не проверяет, было ли устройство заявлено драйвером класса перед обработкой сквозного запроса. Таким образом, если приложение проходит драйвер класса, который утверждал устройство и отправляет сквозной запрос для этого устройства непосредственно в драйвер порта, конфликт управления устройством может возникать между драйвером класса и приложением. Если запрос сквозной передачи отправляется объекту устройства адаптера и если он поступает из пользовательского режима и предназначен для LU, который утверждается драйвером класса, Storport завершает запрос с STATUS_INVALID_DEVICE_REQUEST. Если запрос отправляется в объект устройства LU, происходит в режиме ядра или предназначен для неисключаемой LU, он передается мини-драйверу. Этот запрос нельзя использовать, если CDB может потребовать, чтобы базовый драйвер минипорта мог напрямую получить доступ к памяти. Если для CDB вызывающего абонента может потребоваться прямой доступ к памяти, используйте вместо этого IOCTL_SCSI_PASS_THROUGH_DIRECT. Приложения не должны пытаться отправлять сквозной запрос асинхронно. Все сквозные запросы должны быть синхронными. Приложениям не требуются права администратора для отправки сквозного запроса на устройство, но у них должен быть доступ на чтение и запись на устройство. Вызывающее приложение создает блок дескриптора команды SCSI, который может включать запрос на получение данных с чувством запроса при возникновении условия CHECK. IOCTL_SCSI_PASS_THROUGH — это запрос на управление буферным устройством. Для обхода буферизации в системной памяти вызывающие объекты должны использовать IOCTL_SCSI_PASS_THROUGH_DIRECT. При обработке запроса IOCTL_SCSI_PASS_THROUGH_DIRECT система блокирует буфер в памяти пользователя, а устройство обращается к этой памяти напрямую. Этот запрос обычно используется для передачи небольших объемов данных (<16K). Приложения могут отправлять этот запрос с помощью запроса IRP_MJ_DEVICE_CONTROL. Драйверы классов хранилища задают дополнительный номер IRP для IRP_MN_SCSI_CLASS, чтобы указать, что запрос был обработан драйвером класса хранилища.
IOCTL_SCSI_PASS_THROUGH_DIRECT

Позволяет приложению отправлять почти любую команду SCSI на целевое устройство с помощью следующих ограничений: команды Multitarget, такие как COPY, запрещены. Двунаправленные операции передачи данных не поддерживаются. Если существует драйвер класса для целевого типа устройства, запрос должен быть отправлен в этот драйвер класса. Таким образом, приложение может отправлять этот запрос непосредственно в драйвер системного порта для целевой логической единицы, только если для типа устройства, подключенного к этому LU, нет драйвера класса. Этот запрос должен быть выполнен, если входной CDB может потребовать, чтобы базовый драйвер минипорта мог получить доступ к памяти напрямую. Вызывающее приложение создает блок дескриптора команды SCSI, который может включать запрос на получение данных с чувством запроса при возникновении условия CHECK. Если CDB запрашивает операцию передачи данных, вызывающий объект должен настроить буфер адаптера, выровненный из которого или в который драйвер минипорта может передавать данные напрямую. Этот запрос обычно используется для передачи больших объемов данных (>16K). Приложения могут отправлять этот запрос с помощью запроса IRP_MJ_DEVICE_CONTROL. Драйверы классов хранилища задают дополнительный номер IRP для IRP_MN_SCSI_CLASS, чтобы указать, что запрос был обработан драйвером класса хранилища.
IOCTL_SCSI_PASS_THROUGH_DIRECT_EX

Запрос кода IOCTL_SCSI_PASS_THROUGH_DIRECT_EX — это расширенная версия запроса IOCTL_SCSI_PASS_THROUGH_DIRECT. Этот запрос обеспечивает поддержку двунаправленной передачи данных и позволяет блоку данных команд (CDB) > 16 байт.
IOCTL_SCSI_PASS_THROUGH_EX

Запрос кода IOCTL_SCSI_PASS_THROUGH_EX — это расширенная версия запроса IOCTL_SCSI_PASS_THROUGH. Этот запрос обеспечивает поддержку двунаправленной передачи данных и позволяет блоку данных команд (CDB) > 16 байт.
IOCTL_SCSI_RESCAN_BUS

Повторно сканирует LUN на шине(es).

Структуры

 
ATA_PASS_THROUGH_DIRECT

Структура ATA_PASS_THROUGH_DIRECT используется вместе с запросом IOCTL_ATA_PASS_THROUGH_DIRECT, чтобы указать драйверу порта отправить внедренную команду ATA на целевое устройство.
ATA_PASS_THROUGH_EX

Структура ATA_PASS_THROUGH_EX используется вместе с запросом IOCTL_ATA_PASS_THROUGH, чтобы указать драйверу порта отправить внедренную команду ATA на целевое устройство.
HYBRID_INFORMATION

Структура HYBRID_INFORMATION содержит сведения о возможностях гибридного диска.
IO_SCSI_CAPABILITIES

Структура IO_SCSI_CAPABILITIES используется вместе с запросом IOCTL_SCSI_GET_CAPABILITIES для получения возможностей и ограничений базового адаптера узла SCSI. Обратите внимание, что в будущем драйвер портов SCSI и модели драйверов мини-порта SCSI могут быть изменены или недоступны. Вместо этого рекомендуется использовать модели драйверов Storport и минипорта Storport.
MPIO_PASS_THROUGH_PATH

Структура MPIO_PASS_THROUGH_PATH используется вместе с запросом IOCTL_MPIO_PASS_THROUGH_PATH, чтобы указать драйверу порта отправить внедренную команду SCSI на целевое устройство.
MPIO_PASS_THROUGH_PATH_DIRECT

Структура MPIO_PASS_THROUGH_PATH_DIRECT используется вместе с запросом IOCTL_MPIO_PASS_THROUGH_PATH_DIRECT, чтобы указать драйверу порта отправить внедренную команду SCSI на целевое устройство.
MPIO_PASS_THROUGH_PATH_DIRECT_EX

Структура MPIO_PASS_THROUGH_PATH_DIRECT_EX используется вместе с запросом IOCTL_MPIO_PASS_THROUGH_PATH_DIRECT_EX для отправки встроенной команды SCSI на целевое устройство.
MPIO_PASS_THROUGH_PATH_EX

Структура MPIO_PASS_THROUGH_PATH_EX используется вместе с запросом IOCTL_MPIO_PASS_THROUGH_PATH_EX, чтобы указать драйверу порта отправить внедренную команду SCSI на целевое устройство.
NTSCSI_UNICODE_STRING

Драйверы портов хранилища могут использовать структуру NTSCSI_UNICODE_STRING для определения строк Юникода.
NV_FEATURE_PARAMETER

Структура NV_FEATURE_PARAMETER используется вместе с запросом IOCTL_SCSI_MINIPORT_NVCACHE для получения сведений о поддержке функций диспетчера кэша NV с устройства.
NVCACHE_REQUEST_BLOCK

Структура NVCACHE_REQUEST_BLOCK используется вместе с запросом IOCTL_SCSI_MINIPORT для управления устройствами с гибридным жестким диском (H-HDD) (например, технологией Microsoft ReadyDrive).
SCSI_ADAPTER_BUS_INFO

Структура SCSI_ADAPTER_BUS_INFO используется вместе с запросом IOCTL_SCSI_GET_INQUIRY_DATA для получения данных запроса SCSI для всех устройств на заданной шине SCSI.
SCSI_ADDRESS

Структура SCSI_ADDRESS используется вместе с запросом IOCTL_SCSI_GET_ADDRESS для получения сведений об адресе, таких как идентификатор целевого объекта (TID) и логический номер единицы (LUN) определенного целевого объекта SCSI.
SCSI_BUS_DATA

Структура SCSI_BUS_DATA используется вместе с запросом IOCTL_SCSI_GET_INQUIRY_DATA и структурой SCSI_ADAPTER_BUS_INFO для получения данных запроса SCSI для всех устройств на заданной шине SCSI.
SCSI_INQUIRY_DATA

Структура SCSI_INQUIRY_DATA используется вместе с запросом IOCTL_SCSI_GET_INQUIRY_DATA для получения данных запроса SCSI для всех устройств на заданной шине SCSI.
SCSI_PASS_THROUGH

Структура SCSI_PASS_THROUGH используется вместе с запросом IOCTL_SCSI_PASS_THROUGH, чтобы указать драйверу порта отправить внедренную команду SCSI на целевое устройство.
SCSI_PASS_THROUGH_DIRECT

Структура SCSI_PASS_THROUGH_DIRECT используется вместе с запросом IOCTL_SCSI_PASS_THROUGH_DIRECT, чтобы указать драйверу порта отправить внедренную команду SCSI на целевое устройство.
SCSI_PASS_THROUGH_DIRECT_EX

Структура SCSI_PASS_THROUGH_DIRECT_EX используется вместе с запросом IOCTL_SCSI_PASS_THROUGH_DIRECT_EX, чтобы указать драйверу порта отправить внедренную команду SCSI на целевое устройство.
SCSI_PASS_THROUGH_EX

Структура SCSI_PASS_THROUGH_EX используется вместе с запросом IOCTL_SCSI_PASS_THROUGH_EX, чтобы указать драйверу порта отправить внедренную команду SCSI на целевое устройство.
SRB_IO_CONTROL

структура SRB_IO_CONTROL
STORAGE_DIAGNOSTIC_MP_REQUEST

Описывает диагностический запрос на Miniport. Структура STORAGE_DIAGNOSTIC_MP_REQUEST предоставляется в буфере ввода и вывода запроса IOCTL_SCSI_MINIPORT_DIAGNOSTIC.
STORAGE_ENDURANCE_DATA_DESCRIPTOR

Минипорт использует STORAGE_ENDURANCE_DATA_DESCRIPTOR для отправки сведений о выносливости устройства драйверу порта хранилища.
STORAGE_ENDURANCE_INFO

Минипорт использует структуру STORAGE_ENDURANCE_INFO для отправки сведений о выносливости устройства.
STORAGE_FIRMWARE_SLOT_INFO

Узнайте о структуре STORAGE_FIRMWARE_SLOT_INFO.

Перечисления

 
MP_STORAGE_DIAGNOSTIC_LEVEL

Перечисление MP_STORAGE_DIAGNOSTIC_LEVEL позволяет вызывающему объекту контролировать, какие типы данных должен возвращать поставщик.
MP_STORAGE_DIAGNOSTIC_TARGET_TYPE

Перечисление MP_STORAGE_DIAGNOSTIC_TARGET_TYPE указывает целевой тип диагностики хранилища.