IOCTL_MOUNTMGR_CHANGE_NOTIFY IOCTL (mountmgr.h)
Les clients envoient ce IOCTL au gestionnaire de montage pour être informés chaque fois qu’il y a un changement dans la base de données de noms de liens symboliques persistants du gestionnaire de montage.
Le gestionnaire de montage gère un compteur appelé EpicNumber qui enregistre le nombre de modifications apportées à sa base de données de noms persistants depuis le dernier démarrage. Les clients envoient un numéro au gestionnaire de montage avec chaque demande de notification de modification IRP, et le gestionnaire de montage répond de la manière suivante :
- Si le nombre fourni par le client n’est pas égal à EpicNumber, le gestionnaire de montage retourne STATUS_SUCCESS, indiquant que des modifications se sont produites depuis que le client a comparé son nombre à celui du numéro EpicNumber du gestionnaire de montage.
- Si le nombre fourni par le client est égal à EpicNumber, le gestionnaire de montage l’interprète comme une demande d’information de la prochaine modification apportée à la base de données de noms persistants et met en file d’attente l’IRP de notification de modification et retourne STATUS_PENDING. Chaque fois qu’une modification se produit dans la base de données, le gestionnaire de montage termine tous les IIP de notification de modification en attente, informant ainsi les clients de la modification.
Code principal
Mémoire tampon d'entrée
Le client mount manager initialise la structure MOUNTMGR_CHANGE_NOTIFY_INFO, définie dans Mountmgr.h, au début de la mémoire tampon à Irp-AssociatedIrp.SystemBuffer>.
Longueur de la mémoire tampon d’entrée
Parameters.DeviceIoControl.InputBufferLength dans l’emplacement de la pile d’E/S de l’IRP indique la taille, en octets, de la mémoire tampon d’entrée, qui doit être supérieure ou égale à sizeof(MOUNTMGR_CHANGE_NOTIFY_INFO).
Mémoire tampon de sortie
Le gestionnaire de montage retourne l’EpicNumber actuel dans la structure MOUNTMGR_CHANGE_NOTIFY_INFO, définie dans Mountmgr.h, au début de la mémoire tampon dans Irp-AssociatedIrp.SystemBuffer>.
Bloc d’état
Si l’opération réussit, le champ État est défini sur STATUS_SUCCESS et le champ Informations a la valeur sizeof(MOUNTMGR_CHANGE_NOTIFY_INFO).
Si InputBufferLength est inférieur à sizeof(MOUNTMGR_CHANGE_NOTIFY_INFO) ou Si OutputBufferLength est inférieur à sizeof(MOUNTMGR_CHANGE_NOTIFY_INFO), le champ État est défini sur STATUS_INVALID_PARAMETER.
Configuration requise
Condition requise | Valeur |
---|---|
En-tête | mountmgr.h (inclure Mountmgr.h) |
Voir aussi
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour