Partager via


Sécurisation et libération de la propriété des adresses virtuelles

Le pilote proxy doit sécuriser la propriété des adresses virtuelles des mémoires tampons en mode utilisateur chaque fois que le fournisseur de services SAN pour le pilote proxy met ces mémoires tampons en cache. Pour plus d’informations sur la mise en cache des mémoires tampons, consultez Mise en cache de la mémoire inscrite. Le pilote proxy sécurise la propriété d’une mémoire tampon en mode utilisateur, de sorte que le système d’exploitation avertit le commutateur Windows Sockets si la mémoire tampon est relâchée sur le système d’exploitation par une application. Pour sécuriser la propriété d’une mémoire tampon, le pilote proxy doit appeler la fonction MmSecureVirtualMemory . Dans cet appel, le pilote proxy passe un pointeur vers l’adresse de départ de la mémoire tampon et la taille, en octets, de la mémoire tampon.

Si les mappages virtuels-physiques pour la mémoire tampon mise en cache sont planifiés pour changer, le commutateur est averti et appelle la fonction WSPMemoryRegistrationCacheCallback du fournisseur de services SAN pour supprimer l’inscription de la mémoire tampon de la carte réseau SAN et la mémoire tampon du cache du fournisseur de services SAN. Le pilote proxy du fournisseur de services SAN, à son tour, doit appeler la fonction MmUnsecureVirtualMemory pour libérer la propriété de la mémoire tampon. Dans cet appel, le pilote proxy transmet le handle à la mémoire tampon précédemment retournée par l’appel MmSecureVirtualMemory .

Note Un pilote qui tente d’accéder à une mémoire tampon en mode utilisateur qui a été sécurisée par un appel à MmSecureVirtualMemory peut potentiellement faire tomber le système d’exploitation. Par conséquent, lorsque le pilote proxy accède à une telle mémoire tampon en mode utilisateur, il doit également utiliser le mécanisme try/except autour du code qui accède à la mémoire tampon. Pour plus d’informations sur try/except, consultez la documentation visual C++.

Un fournisseur de services SAN peut envoyer des demandes de contrôle d’E/S (IOCTL) au pilote proxy pour sécuriser et libérer la propriété d’une mémoire tampon. Pour plus d’informations, consultez Implémentation d’IOCTL pour un fournisseur de services SAN.