Partilhar via


SRB_CLOSE_STREAM

O driver de classe envia essa solicitação para fechar um fluxo.

Valor retornado

O minidriver deve definir um dos seguintes como o status no SRB:

STATUS_SUCCESS
Indica a conclusão bem-sucedida do comando.

STATUS_NOT_IMPLEMENTED
Indica que a função não é compatível com o minidriver.

STATUS_IO_DEVICE_ERROR
Indica que ocorreu uma falha de hardware.

Comentários

O driver de classe fornece um buffer HW_STREAM_OBJECT em pSrb-StreamObject>, com pSrb-StreamObject-StreamNumber>> definido como o número do fluxo a ser fechado. O ponteiro pSrb aponta para uma estrutura de HW_STREAM_REQUEST_BLOCK . StreamNumber corresponde ao deslocamento do fluxo dentro da estrutura HW_STREAM_DESCRIPTOR que o minidriver fornece em resposta a uma solicitação de SRB_GET_STREAM_INFO .

Se o minidriver fechar com êxito o fluxo, o minidriver retornará STATUS_SUCCESS. Caso contrário, ele retornará um erro apropriado status.

Quando o comando SRB_CLOSE_STREAM é recebido pelo minidriver, a rotina de minidriver de resposta deve:

  1. Libere todos os recursos alocados pelo minidriver quando o fluxo foi aberto.

  2. Pare de referenciar o relógio se um relógio tiver sido usado para o fluxo.

  3. Redefina o estado do fluxo para Parar.

Observe que um fluxo pode ser fechado arbitrariamente durante o streaming se um aplicativo de modo de usuário associado falhar. Portanto, você deve liberar todos os recursos pendentes para o fluxo, concluir todos os SRBs pendentes para o fluxo e colocar o fluxo de volta em um estado quiescente.