Compartilhar via


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)