Implementando IOCTLs para um provedor de serviços SAN
Se um provedor de serviços SAN enviar solicitações de controle de E/S (IOCTL) para o driver proxy, o driver deverá implementar uma rotina de expedição IRP_MJ_DEVICE_CONTROL para processar essas solicitações. Uma solicitação IOCTL pode ser uma solicitação para recuperar a lista de endereços IP atribuídos às NICs do driver, por exemplo, ou uma solicitação para alocar ou liberar memória. A rotina DriverEntry deve especificar um ponto de entrada para a rotina de expedição.
A rotina de controle de dispositivo do driver proxy chama a função IoGetCurrentIrpStackLocation , na qual a rotina de controle do dispositivo passa um ponteiro para o IRP que foi passado para a rotina. Em seguida, a rotina de controle do dispositivo determina qual solicitação IOCTL foi recebida e processa a solicitação adequadamente.
Após a conclusão da solicitação IOCTL atual, a rotina de controle do dispositivo chama a função IoCompleteRequest e passa o status da operação. Essa status é retornada ao provedor de serviços SAN.