Compartir a través de


PHW_RECEIVE_DEVICE_SRB función de devolución de llamada (strmini.h)

La rutina proporcionada por minidriver controla las solicitudes de controlador de clase que se aplican al controlador en su conjunto, como inicializar el dispositivo o abrir una secuencia dentro del dispositivo.

Sintaxis

PHW_RECEIVE_DEVICE_SRB PhwReceiveDeviceSrb;

void PhwReceiveDeviceSrb(
  [in] IN PHW_STREAM_REQUEST_BLOCK SRB
)
{...}

Parámetros

[in] SRB

Puntero al bloque de solicitud de secuencia.

Valor devuelto

None

Observaciones

El minidriver especifica esta rutina en el miembro HwReceivePacket de su estructura de HW_INITIALIZATION_DATA . El minidriver pasa esta estructura al controlador de clase cuando se registra mediante una llamada a StreamClassRegisterMinidriver.

StrMiniReceiveDevicePacket debe controlar las solicitudes de controlador de clase que se aplican al controlador en su conjunto, como inicializar el dispositivo o abrir una secuencia dentro del dispositivo. El controlador de clase pasa su información en forma de puntero a un bloque de solicitud de secuencia. El controlador de clase rellena algunas de las entradas del bloque de solicitud de secuencia. El minidriver, al finalizar la rutina, debe rellenar información adicional que usará el controlador de clase para continuar el procesamiento.

Tras completar su control de la solicitud, el minidriver vuelve a pasar la estructura al controlador de clase llamando a StreamClassDeviceNotification(DeviceRequestComplete, pSRB-HwDeviceExtension>, pSRB).

Vea información sobre los códigos SRB pertinentes en Stream Referencia de SRB de clase.

Cuando el minidriver finaliza su procesamiento de la solicitud, entra en el estado devuelto de la operación en pSrb-Status>. El minidriver debe escribir STATUS_SUCCESS para el procesamiento correcto normal. Si el minidriver no admite ese valor command, debe establecer pSrb-Status> en STATUS_NOT_IMPLEMENTED. Si hay un error de hardware de dispositivo que impide que el minidriver complete la solicitud, debe establecer pSrb-Status> en STATUS_IO_DEVICE_ERROR. Otros códigos de error que usa la rutina en circunstancias específicas se enumeran anteriormente con el código de comando específico.

Tenga en cuenta que el controlador de clase pasa solicitudes de lectura y escritura a la rutina StrMiniReceiveStreamDataPacket .

El minidriver registra su rutina StrMiniReceiveStreamControlPacket de la siguiente manera: Cuando el controlador de clase abre la secuencia, pasa un bloque de solicitud SRB_OPEN_STREAM a la rutina StrMiniReceiveDevicePacket del minidriver. El miembro StreamObject del paquete de solicitud apunta a un HW_STREAM_OBJECT. El minidriver establece el miembro ReceiveControlPacket de la estructura a la que apunta StreamObject en la rutina StrMiniReceiveControlPacket del minidriver.

Tras completar su control de la solicitud, el minidriver vuelve a pasar la estructura al controlador de clase llamando a StreamClassStreamNotification(StreamRequestComplete, pSRB-StreamObject>, pSRB).

Vea información sobre los códigos SRB pertinentes en Stream Referencia de SRB de clase.

Cuando el minidriver finaliza su procesamiento de la solicitud, entra en el estado devuelto de la operación en pSrb-Status>. El minidriver debe escribir STATUS_SUCCESS para el procesamiento correcto normal. Si el minidriver no admite ese valor command, debe establecer pSrb-Status> en STATUS_NOT_IMPLEMENTED. Si hay un error de hardware de dispositivo que impide que el minidriver complete la solicitud, debe establecer pSrb-Status> en STATUS_IO_DEVICE_ERROR. Otros códigos de error que usa la rutina en circunstancias específicas se enumeran anteriormente con el código de comando específico.

El controlador de clase stream llama a la rutina StrMiniReceiveStreamDataPacket del minidriver para controlar las solicitudes de lectura y escritura de una secuencia específica.

El minidriver registra su rutina StrMiniReceiveStreamDataPacket de la siguiente manera: Cuando el controlador de clase abre la secuencia, pasa un bloque de solicitud de SRB_OPEN_STREAM a la rutina StrMiniReceiveDevicePacket del minidriver. StreamObject del paquete de solicitud apunta a un HW_STREAM_OBJECT. El minidriver establece el miembro ReceiveDataPacket de la estructura a la que apunta pSrb-StreamObject> en la rutina StrMiniReceiveDataPacket del minidriver.

Tras completar su control de la solicitud, el minidriver vuelve a pasar la estructura al controlador de clase llamando a StreamClassStreamNotification(StreamRequestComplete, pSRB-StreamObject>, pSRB).

Vea información sobre los códigos SRB pertinentes en Stream Referencia de SRB de clase.

Cuando el minidriver finaliza su procesamiento de la solicitud, entra en el estado devuelto de la operación en pSrb-Status>. El minidriver debe escribir STATUS_SUCCESS para el procesamiento correcto normal. Si el minidriver no admite ese valor command, debe establecer pSrb-Status> en STATUS_NOT_IMPLEMENTED. Si hay un error de hardware de dispositivo que impide que el minidriver complete la solicitud, debe establecer pSrb-Status> en STATUS_IO_DEVICE_ERROR. Otros códigos de error que usa la rutina en circunstancias específicas se enumeran anteriormente con el código de comando específico.

Requisitos

Requisito Value
Plataforma de destino Escritorio
Encabezado strmini.h (incluya Strmini.h)