Condividi tramite


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

IRP_MJ_DEVICE_CONTROL

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

MOUNTMGR_CHANGE_NOTIFY_INFO