Заголовок 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 указывает целевой тип диагностики хранилища. |