Compartir a través de


SRB_CLOSE_STREAM

El controlador de clase envía esta solicitud para cerrar una secuencia.

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_NOT_IMPLEMENTED
Indica que la función no es compatible con el minidriver.

STATUS_IO_DEVICE_ERROR
Indica que se ha producido un error de hardware.

Comentarios

El controlador de clase proporciona un búfer de HW_STREAM_OBJECT en pSrb-StreamObject>, con pSrb-StreamObject-StreamNumber >> establecido en el número de la secuencia que se va a cerrar. El puntero pSrb apunta a una estructura de HW_STREAM_REQUEST_BLOCK . StreamNumber corresponde al desplazamiento de la secuencia dentro de la estructura HW_STREAM_DESCRIPTOR que proporciona el minidriver en respuesta a una solicitud de SRB_GET_STREAM_INFO .

Si el minidriver cierra correctamente la secuencia, el minidriver devuelve STATUS_SUCCESS. De lo contrario, devuelve un estado de error adecuado.

Cuando el minidriver recibe el comando SRB_CLOSE_STREAM, la rutina de minidriver que responde debe:

  1. Libere los recursos asignados por el minidriver cuando se abrió la secuencia.

  2. Detenga la referencia al reloj si se usó un reloj para la secuencia.

  3. Restablezca el estado de la secuencia en Detener.

Tenga en cuenta que una secuencia podría cerrarse arbitrariamente mientras se transmite si se bloquea una aplicación en modo de usuario asociada. Por lo tanto, debe liberar todos los recursos pendientes para la secuencia, completar todos los SRB pendientes para la secuencia y volver a colocar la secuencia en un estado inactivo.