Compartir a través de


SRB_GET_STREAM_INFO

El controlador de clase envía esta solicitud para obtener una descripción del dispositivo y las secuencias que admite.

Valor devuelto

El minidriver debe establecer uno de los siguientes como estado en el SRB:

STATUS_SUCCESS
Indica la finalización correcta del comando.

STATUS_IO_DEVICE_ERROR
Indica que se ha producido un error de hardware.

Comentarios

El controlador de clase pasa un búfer en pSrb-CommandData.StreamBuffer > del tamaño especificado por el minidriver en respuesta a la solicitud de SRB_INITIALIZE_DEVICE del controlador de clase. El puntero pSrb apunta a una estructura de HW_STREAM_REQUEST_BLOCK . Consulte también PORT_CONFIGURATION_INFORMATION.

El minidriver rellena CommandData.StreamBuffer con un HW_STREAM_DESCRIPTOR que describe el dispositivo y las secuencias que admite. El tamaño de este búfer se indica mediante el minidriver en el campo StreamDescriptorSize de la estructura PORT_CONFIGURATION_INFORMATION .

Normalmente, el controlador de clase emite esta solicitud una sola vez. El minidriver puede obligar al controlador de clase a volver a emitir esta solicitud, para actualizar su descripción de las secuencias admitidas, llamando a StreamClassReenumerateStreams.

Cuando el minidriver recibe el comando SRB_GET_STREAM_INFO, el minidriver debe:

  1. Recupere los punteros para el encabezado de secuencia y las estructuras de datos de información de flujo. Por ejemplo:

     PHW_STREAM_HEADER pstrhdr =
      (PHW_STREAM_HEADER)&(pSrb->CommandData.StreamBuffer->StreamHeader);
     PHW_STREAM_INFORMATION pstrinfo =
      (PHW_STREAM_INFORMATION)&(pSrb->CommandData.StreamBuffer->StreamInfo);
    
    
  2. Compruebe que el búfer es lo suficientemente grande como para contener los datos devueltos.

  3. Escriba la información en el búfer.