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, он должен:
Получение указателей для заголовка потока и структур данных потока. Пример:
PHW_STREAM_HEADER pstrhdr = (PHW_STREAM_HEADER)&(pSrb->CommandData.StreamBuffer->StreamHeader); PHW_STREAM_INFORMATION pstrinfo = (PHW_STREAM_INFORMATION)&(pSrb->CommandData.StreamBuffer->StreamInfo);
Убедитесь, что буфер достаточно велик для хранения возвращаемых данных.
Запишите сведения в буфер.