Implementación de IOCTLs para un proveedor de servicios SAN
Si un proveedor de servicios SAN envía solicitudes de control de E/S (IOCTL) al controlador proxy, el controlador debe implementar una rutina de envío de IRP_MJ_DEVICE_CONTROL para procesar estas solicitudes. Una solicitud IOCTL puede ser una solicitud para recuperar la lista de direcciones IP asignadas a las NIC del controlador, por ejemplo, o una solicitud para asignar o liberar memoria. La rutina DriverEntry debe especificar un punto de entrada para la rutina de envío.
La rutina de control de dispositivos del controlador proxy llama a la función IoGetCurrentIrpStackLocation , en la que la rutina de control de dispositivo pasa un puntero al IRP que se pasó a la rutina. A continuación, la rutina de control de dispositivos determina qué solicitud IOCTL se recibió y procesa la solicitud en consecuencia.
Una vez completada la solicitud IOCTL actual, la rutina de control de dispositivo llama a la función IoCompleteRequest y pasa el estado de la operación. Este estado se devuelve al proveedor de servicios SAN.