Share via


HW_PROCESS_SERVICE_REQUEST función de devolución de llamada (storport.h)

La rutina de devolución de llamada HwStorProcessServiceRequest recibe el IRP de control de dispositivo que contiene la solicitud de IOCTL_MINIPORT_PROCESS_SERVICE_IRP cuando un llamador, como una aplicación en modo de usuario o un controlador en modo kernel, requiere una operación de "devolución de llamada inversa". El controlador de miniporte completa la E/S cuando necesita indicar al autor de la llamada algo o necesita que el autor de la llamada haga algo.

Sintaxis

HW_PROCESS_SERVICE_REQUEST HwProcessServiceRequest;

void HwProcessServiceRequest(
  PVOID DeviceExtension,
  PVOID Irp
)
{...}

Parámetros

DeviceExtension

Puntero al área de almacenamiento del controlador de minipuerto virtual por adaptador.

Irp

Puntero a la solicitud de E/S.

Valor devuelto

None

Observaciones

El nombre HwStorProcessServiceRequest es texto de marcador de posición para el nombre de rutina real. El prototipo real de esta rutina se define en Storport.h de la siguiente manera:

typedef
VOID
HW_PROCESS_SERVICE_REQUEST (
  _In_ PVOID  DeviceExtension,
  _In_ PVOID  Irp
  );

El controlador de puerto llama a la rutina HwStorProcessServiceRequest del controlador virtual de Storport en PASSIVE_LEVEL. El controlador de minipuerto virtual completa el IRP llamando a la rutina StorPortCompleteServiceIrp .

Ejemplos

Para definir una función de devolución de llamada HwStorProcessServiceRequest , primero debe proporcionar una declaración de función que identifique el tipo de función de devolución de llamada que está definiendo. Windows proporciona un conjunto de tipos de función de devolución de llamada para controladores. Declarar una función mediante los tipos de función de devolución de llamada ayuda a Code Analysis for Drivers, Static Driver Verifier (SDV) y otras herramientas de comprobación encuentran errores y es un requisito para escribir controladores para el sistema operativo Windows.

Por ejemplo, para definir una rutina de devolución de llamada HwStorProcessServiceRequest denominada MyHwProcessServiceRequest, use el tipo de HW_PROCESS_SERVICE_REQUEST como se muestra en este ejemplo de código:

HW_PROCESS_SERVICE_REQUEST MyHwProcessServiceRequest;

A continuación, implemente la rutina de devolución de llamada de la siguiente manera:

_Use_decl_annotations_
VOID
MyHwProcessServiceRequest (
  _In_ PVOID  DeviceExtension,
  _In_ PVOID  Irp
  );
  {
      ...
  }

El tipo de función HW_PROCESS_SERVICE_REQUEST se define en el archivo de encabezado Storport.h. Para identificar con más precisión los errores al ejecutar las herramientas de análisis de código, asegúrese de agregar la anotación Use_decl_annotations a la definición de función. La anotación Use_decl_annotations garantiza que se usen las anotaciones que se aplican al tipo de función HW_PROCESS_SERVICE_REQUEST en el archivo de encabezado. Para obtener más información sobre los requisitos de las declaraciones de función, consulte Declaración de funciones mediante tipos de roles de función para controladores storport. Para obtener información sobre Use_decl_annotations, consulte Anotación del comportamiento de la función.

Requisitos

Requisito Value
Plataforma de destino Universal
Encabezado storport.h (incluya Storport.h)

Consulte también

IOCTL_MINIPORT_PROCESS_SERVICE_IRP

StorPortCompleteServiceIrp