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 à la notification de l’appareil cible Plug-and-Play et de surveiller GUID_IO_VOLUME_NAME_CHANGE.

Code principal

IRP_MJ_DEVICE_CONTROL

Mémoire tampon d'entrée

Le client du gestionnaire de montage initialise la structure MOUNTMGR_CHANGE_NOTIFY_INFO au début de la mémoire tampon sur 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 au début de la mémoire tampon sur Irp-AssociatedIrp.SystemBuffer>.

Longueur de la mémoire tampon de sortie

Aucun.

Mémoire tampon d’entrée/sortie

N/A

Longueur de la mémoire tampon d’entrée/sortie

N/A

Bloc d’état

Si l’opération réussit, le champ État est défini sur STATUS_SUCCESS et le champ Informations est défini sur 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 Status est défini sur STATUS_INVALID_PARAMETER.

Remarques

Pour plus d’informations, consultez Prise en charge des demandes mount Manager dans un pilote de classe de stockage.

Configuration requise

Condition requise Valeur
En-tête mountmgr.h (inclure Mountmgr.h)

Voir aussi

MOUNTMGR_CHANGE_NOTIFY_INFO