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


SRB_GET_STREAM_INFO

Драйвер класса отправляет этот запрос, чтобы получить описание устройства и поддерживаемых им потоков.

Возвращаемое значение

Мини-диск должен задать одно из следующих состояний в SRB:

STATUS_SUCCESS
Указывает на успешное выполнение команды.

STATUS_IO_DEVICE_ERROR
Указывает, что произошел сбой оборудования.

Комментарии

Драйвер класса передает буфер в pSrb-CommandData.StreamBuffer > размера, заданного мини-накопителем, в ответ на запрос SRB_INITIALIZE_DEVICE драйвера класса. Указатель pSrb указывает на HW_STREAM_REQUEST_BLOCK структуру. См. также PORT_CONFIGURATION_INFORMATION.

Мини-диск заполняет CommandData.StreamBufferHW_STREAM_DESCRIPTOR , описывающий устройство и поддерживаемые им потоки. Размер этого буфера определяется мини-накопителем в поле StreamDescriptorSize в структуре PORT_CONFIGURATION_INFORMATION .

Драйвер класса обычно выдает этот запрос только один раз. Мини-driver может заставить драйвер класса повторно отправить этот запрос, чтобы обновить описание поддерживаемых потоков, вызвав StreamClassReenumerateStreams.

Когда мини-диск получает команду SRB_GET_STREAM_INFO, он должен:

  1. Получение указателей для заголовка потока и структур данных потока. Пример:

     PHW_STREAM_HEADER pstrhdr =
      (PHW_STREAM_HEADER)&(pSrb->CommandData.StreamBuffer->StreamHeader);
     PHW_STREAM_INFORMATION pstrinfo =
      (PHW_STREAM_INFORMATION)&(pSrb->CommandData.StreamBuffer->StreamInfo);
    
    
  2. Убедитесь, что буфер достаточно велик для хранения возвращаемых данных.

  3. Запишите сведения в буфер.