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:
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);
Verifique se o buffer é grande o suficiente para manter os dados retornados.
Escreva as informações no buffer.