Condividi tramite


IOCTL_MOUNTMGR_CHANGE_NOTIFY IOCTL (mountmgr.h)

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

Gestione montaggio gestisce un contatore denominato EpicNumber che registra il numero di modifiche apportate nel database del nome permanente dall'ultimo avvio. I client inviano un numero al gestore di montaggio con ogni richiesta di notifica delle modifiche IRP 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 dopo l'ultimo confronto tra il numero del client e il 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 dei nomi permanenti 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 runtime di integrazione di notifica delle modifiche in sospeso, informando quindi i client della modifica.

Un client che vuole solo essere informato delle modifiche apportate a un determinato volume è consigliabile registrarsi per la notifica del dispositivo di destinazione Plug and Play e controllare la 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 all'inizio del buffer in Irp->AssociatedIrp.SystemBuffer.

Lunghezza del buffer di input

Parameters.DeviceIoControl.InputBufferLength nella posizione dello stack I/O dell'IRP indica le dimensioni, in byte, del buffer di input, che deve essere maggiore o uguale a sizeof(MOUNTMGR_CHANGE_NOTIFY_INFO).

Buffer di output

Il gestore di montaggio restituisce il EpicNumber corrente nella struttura MOUNTMGR_CHANGE_NOTIFY_INFO all'inizio del buffer all'inizio del buffer in Irp->AssociatedIrp.SystemBuffer.

Lunghezza del buffer di output

Nessuno.

Buffer di input/output

N/D

Lunghezza del buffer di input/output

N/D

Blocco di stato

Se l'operazione ha esito positivo, il campo stato è 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 Stato è impostato su STATUS_INVALID_PARAMETER.

Osservazioni

Per altre informazioni, vedere Supporto delle richieste di Gestione montaggio in un driver di classe di archiviazione.

Fabbisogno

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

Vedere anche

MOUNTMGR_CHANGE_NOTIFY_INFO