Partager via


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.
Un client qui souhaite uniquement être informé des modifications apportées à un volume particulier est conseillé de s’inscrire à Plug-and-Play notification d’appareil cible et de watch pour GUID_IO_VOLUME_NAME_CHANGE.

Code principal

IRP_MJ_DEVICE_CONTROL

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

MOUNTMGR_CHANGE_NOTIFY_INFO