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) |