IOCTL_MOUNTMGR_CHANGE_NOTIFY IOCTL (mountmgr.h)

I client inviano questo IOCTL al gestore di montaggio per essere informati ogni volta che viene apportata una modifica al database del nome di collegamento simbolico permanente del gestore di montaggio.

Il gestore di montaggio gestisce un contatore denominato EpicNumber che registra il numero di modifiche apportate nel database del nome permanente dall'ultima avvio. I client inviano un numero al gestore di montaggio con ogni richiesta di notifica delle modifiche E il gestore di montaggio risponde nel modo seguente:

  • Se il numero fornito dal client non è uguale a EpicNumber, il gestore di montaggio restituisce STATUS_SUCCESS, a indicare che le modifiche sono state apportate dall'ultimo confronto tra il numero del client e EpicNumber del gestore di montaggio.
  • Se il numero fornito dal client è uguale a EpicNumber, il gestore di montaggio lo interpreta come richiesta di essere informato della modifica successiva al database del nome permanente e accoda l'IRP di notifica delle modifiche e restituisce STATUS_PENDING. Ogni volta che si verifica una modifica nel database, il gestore di montaggio completa tutti i provider di integrazione di notifica delle modifiche in sospeso, informando in tal modo i client della modifica.
È consigliabile registrare un client che vuole solo essere informato delle modifiche apportate a un determinato volume per Plug and Play notifica del dispositivo di destinazione e watch per GUID_IO_VOLUME_NAME_CHANGE.

Codice principale

IRP_MJ_DEVICE_CONTROL

Buffer di input

Il client di gestione montaggio inizializza la struttura MOUNTMGR_CHANGE_NOTIFY_INFO, definita in Mountmgr.h, all'inizio del buffer in Irp-AssociatedIrp.SystemBuffer>.

Lunghezza del buffer di input

Parameters.DeviceIoControl.InputBufferLength nella posizione dello stack I/O di IRP indica le dimensioni, in byte, del buffer di input, che devono essere maggiori o uguali a sizeof(MOUNTMGR_CHANGE_NOTIFY_INFO).

Buffer di output

Il gestore di montaggio restituisce l'oggetto EpicNumber corrente nella struttura MOUNTMGR_CHANGE_NOTIFY_INFO, definito in Mountmgr.h, all'inizio del buffer in Irp-AssociatedIrp.SystemBuffer>.

Blocco dello stato

Se l'operazione ha esito positivo, il campo Stato viene impostato su STATUS_SUCCESS e il campo Informazioni è impostato su sizeof(MOUNTMGR_CHANGE_NOTIFY_INFO).

Se InputBufferLength è minore di sizeof(MOUNTMGR_CHANGE_NOTIFY_INFO) o OutputBufferLength è minore di sizeof(MOUNTMGR_CHANGE_NOTIFY_INFO), il campo Status viene impostato su STATUS_INVALID_PARAMETER.

Requisiti

Requisito Valore
Intestazione mountmgr.h (include Mountmgr.h)

Vedi anche

MOUNTMGR_CHANGE_NOTIFY_INFO