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:
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);
Compruebe que el búfer es lo suficientemente grande como para contener los datos devueltos.
Escriba la información en el búfer.