Implémentation de IOCTL pour un fournisseur de services SAN
Si un fournisseur de services SAN envoie des demandes de contrôle d’E/S (IOCTL) au pilote proxy, le pilote doit implémenter une routine de répartition IRP_MJ_DEVICE_CONTROL pour traiter ces demandes. Une demande IOCTL peut être une demande de récupération de la liste des adresses IP attribuées aux cartes réseau du pilote, par exemple, ou une demande d’allocation ou de libération de mémoire. La routine DriverEntry doit spécifier un point d’entrée pour la routine de répartition.
La routine de contrôle d’appareil du pilote proxy appelle la fonction IoGetCurrentIrpStackLocation , dans laquelle la routine de contrôle de l’appareil passe un pointeur vers l’IRP qui a été passé à la routine. La routine de contrôle de l’appareil détermine ensuite quelle demande IOCTL a été reçue et traite la demande en conséquence.
Une fois la requête IOCTL actuelle terminée, la routine de contrôle de l’appareil appelle la fonction IoCompleteRequest et passe le status de l’opération. Cette status est retournée au fournisseur de services SAN.