IOCTL_MOUNTMGR_CHANGE_NOTIFY IOCTL (mountmgr.h)
I client inviano questo IOCTL al gestore montaggio per essere informati ogni volta che si verifica una modifica nel database del nome di collegamento simbolico permanente di Gestione montaggio.
Il gestore di montaggio gestisce un contatore denominato EpicNumber che registra il numero di modifiche apportate nel database dei nomi persistenti dall'ultima avvio. I client inviano un numero al gestore di montaggio con ogni richiesta di notifica di modifica 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, indicando che le modifiche sono state apportate dall'ultimo client rispetto al numero con EpicNumber del gestore di montaggio.
Se il numero fornito dal client è uguale a EpicNumber, il gestore di montaggio interpreta questa operazione come richiesta per essere informati della modifica successiva al database dei nomi persistenti 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 gli INDIRIZZI DI accesso di notifica delle modifiche in sospeso, informando così i client della modifica.
Un client che vuole essere informato solo delle modifiche apportate a un determinato volume è consigliabile registrare la notifica del dispositivo di destinazione Plug and Play e controllare la GUID_IO_VOLUME_NAME_CHANGE.
Codice principale
Buffer di input
Il client di gestione montaggio inizializza la struttura di 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 l'epicnumber corrente nella struttura MOUNTMGR_CHANGE_NOTIFY_INFO all'inizio del buffer in Irp-AssociatedIrp.SystemBuffer>.
Lunghezza del buffer di output
Nessuno.
Input/Buffer di output
N/D
Lunghezza del buffer di input/output
N/D
Blocco dello 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 o OutputBufferLength è minore sizeof(MOUNTMGR_CHANGE_NOTIFY_INFO)
di sizeof(MOUNTMGR_CHANGE_NOTIFY_INFO)
, il campo Stato è impostato su STATUS_INVALID_PARAMETER.
Commenti
Per altre informazioni, vedere Supporto delle richieste di Mount Manager in un driver di classe di archiviazione.
Requisiti
Requisito | Valore |
---|---|
Intestazione | mountmgr.h (includere Mountmgr.h) |
Vedi anche
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per