Compartilhar via


SRB_GET_STREAM_INFO

O driver de classe envia essa solicitação para obter uma descrição do dispositivo e os fluxos aos quais ele dá suporte.

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_IO_DEVICE_ERROR
Indica que ocorreu uma falha de hardware.

Comentários

O driver de classe passa um buffer em pSrb-CommandData.StreamBuffer > do tamanho especificado pelo minidriver em resposta à solicitação de SRB_INITIALIZE_DEVICE do driver de classe. O ponteiro pSrb aponta para uma estrutura de HW_STREAM_REQUEST_BLOCK . Consulte também PORT_CONFIGURATION_INFORMATION.

O minidriver preenche CommandData.StreamBuffer com um HW_STREAM_DESCRIPTOR que descreve o dispositivo e os fluxos aos quais ele dá suporte. O tamanho desse buffer é indicado pelo minidriver no campo StreamDescriptorSize na estrutura PORT_CONFIGURATION_INFORMATION .

Normalmente, o driver de classe emite essa solicitação apenas uma vez. O minidriver pode forçar o driver de classe a reemissar essa solicitação, para atualizar sua descrição dos fluxos com suporte, chamando StreamClassReenumerateStreams.

Quando o comando SRB_GET_STREAM_INFO é recebido pelo minidriver, o minidriver deve:

  1. Recupere os ponteiros para o cabeçalho do fluxo e as estruturas de dados de informações de fluxo. Por exemplo:

     PHW_STREAM_HEADER pstrhdr =
      (PHW_STREAM_HEADER)&(pSrb->CommandData.StreamBuffer->StreamHeader);
     PHW_STREAM_INFORMATION pstrinfo =
      (PHW_STREAM_INFORMATION)&(pSrb->CommandData.StreamBuffer->StreamInfo);
    
    
  2. Verifique se o buffer é grande o suficiente para manter os dados retornados.

  3. Escreva as informações no buffer.