PHW_RECEIVE_DEVICE_SRB função de retorno de chamada (strmini.h)
A rotina fornecida pelo minidriver lida com solicitações de driver de classe que se aplicam ao driver como um todo, como inicializar o dispositivo ou abrir um fluxo dentro do dispositivo.
Sintaxe
PHW_RECEIVE_DEVICE_SRB PhwReceiveDeviceSrb;
void PhwReceiveDeviceSrb(
[in] IN PHW_STREAM_REQUEST_BLOCK SRB
)
{...}
Parâmetros
[in] SRB
Ponteiro para o bloco de solicitação de fluxo.
Retornar valor
Nenhum
Comentários
O minidriver especifica essa rotina no membro HwReceivePacket de sua estrutura HW_INITIALIZATION_DATA . O minidriver passa essa estrutura para o driver de classe quando ele se registra chamando StreamClassRegisterMinidriver.
StrMiniReceiveDevicePacket deve lidar com solicitações de driver de classe que se aplicam ao driver como um todo, como inicializar o dispositivo ou abrir um fluxo dentro do dispositivo. O driver de classe passa suas informações na forma de um ponteiro para um bloco de solicitação de fluxo. O driver de classe preenche algumas das entradas no bloco de solicitação de fluxo. O minidriver, após a conclusão da rotina, deve preencher informações adicionais que o driver de classe usará para continuar o processamento.
Após a conclusão de sua manipulação da solicitação, o minidriver passa a estrutura de volta para o driver de classe chamando StreamClassDeviceNotification(DeviceRequestComplete, pSRB-HwDeviceExtension>, pSRB).
Consulte informações sobre códigos SRB relevantes na Referência de SRB da classe Stream.
Quando o minidriver conclui o processamento da solicitação, ele insere o status de retorno da operação em pSrb-Status>. O minidriver deve inserir STATUS_SUCCESS para processamento normal bem-sucedido. Se o minidriver não der suporte a esse valor de Comando, ele deverá definir pSrb-Status> como STATUS_NOT_IMPLEMENTED. Se houver um erro de hardware do dispositivo que impeça o minidriver de concluir a solicitação, ele deverá definir pSrb-Status> como STATUS_IO_DEVICE_ERROR. Outros códigos de erro que a rotina usa em circunstâncias específicas são listados acima com o código de comando específico.
Observe que o driver de classe passa solicitações de leitura e gravação para a rotina StrMiniReceiveStreamDataPacket .
O minidriver registra sua rotina StrMiniReceiveStreamControlPacket da seguinte maneira: quando o driver de classe abre o fluxo, ele passa um bloco de solicitação SRB_OPEN_STREAM para a rotina StrMiniReceiveDevicePacket do minidriver. O membro StreamObject do pacote de solicitação aponta para um HW_STREAM_OBJECT. O minidriver define o membro ReceiveControlPacket da estrutura apontada por StreamObject para a rotina StrMiniReceiveControlPacket do minidriver.
Após a conclusão de sua manipulação da solicitação, o minidriver passa a estrutura de volta para o driver de classe chamando StreamClassStreamNotification(StreamRequestComplete, pSRB-StreamObject>, pSRB).
Consulte informações sobre códigos SRB relevantes na Referência de SRB da classe Stream.
Quando o minidriver conclui o processamento da solicitação, ele insere o status de retorno da operação em pSrb-Status>. O minidriver deve inserir STATUS_SUCCESS para processamento normal bem-sucedido. Se o minidriver não der suporte a esse valor de Comando, ele deverá definir pSrb-Status> como STATUS_NOT_IMPLEMENTED. Se houver um erro de hardware do dispositivo que impeça o minidriver de concluir a solicitação, ele deverá definir pSrb-Status> como STATUS_IO_DEVICE_ERROR. Outros códigos de erro que a rotina usa em circunstâncias específicas são listados acima com o código de comando específico.
O driver de classe de fluxo chama a rotina StrMiniReceiveStreamDataPacket do minidriver para lidar com solicitações de leitura e gravação para um fluxo específico.
O minidriver registra sua rotina StrMiniReceiveStreamDataPacket da seguinte maneira: Quando o driver de classe abre o fluxo, ele passa um bloco de solicitação SRB_OPEN_STREAM para a rotina StrMiniReceiveDevicePacket do minidriver. O StreamObject do pacote de solicitação aponta para um HW_STREAM_OBJECT. O minidriver define o membro ReceiveDataPacket da estrutura apontada por pSrb-StreamObject> para a rotina StrMiniReceiveDataPacket do minidriver.
Após a conclusão de sua manipulação da solicitação, o minidriver passa a estrutura de volta para o driver de classe chamando StreamClassStreamNotification(StreamRequestComplete, pSRB-StreamObject>, pSRB).
Consulte informações sobre códigos SRB relevantes na Referência de SRB da classe Stream.
Quando o minidriver conclui o processamento da solicitação, ele insere o status de retorno da operação em pSrb-Status>. O minidriver deve inserir STATUS_SUCCESS para processamento normal bem-sucedido. Se o minidriver não der suporte a esse valor de Comando, ele deverá definir pSrb-Status> como STATUS_NOT_IMPLEMENTED. Se houver um erro de hardware do dispositivo que impeça o minidriver de concluir a solicitação, ele deverá definir pSrb-Status> como STATUS_IO_DEVICE_ERROR. Outros códigos de erro que a rotina usa em circunstâncias específicas são listados acima com o código de comando específico.
Requisitos
Requisito | Valor |
---|---|
Plataforma de Destino | Área de Trabalho |
Cabeçalho | strmini.h (inclua Strmini.h) |