Eventi del dispositivo (IoEvent.h)
Le applicazioni, inclusi i servizi, possono registrarsi per ricevere la notifica degli eventi del dispositivo. Ad esempio, un servizio di catalogo può ricevere un avviso sui volumi montati o smontati in modo da poter modificare i percorsi ai file nel volume. Il sistema notifica a un'applicazione che si è verificato un evento del dispositivo inviando all'applicazione un messaggio di WM_DEVICECHANGE . Il sistema notifica a un servizio che si è verificato un evento del dispositivo richiamando la funzione del gestore eventi del servizio, HandlerEx.
Per ricevere avvisi sugli eventi del dispositivo, chiamare la funzione RegisterDeviceNotification con una struttura DEV_BROADCAST_HANDLE . Assicurarsi di impostare il membro dbch_handle sull'handle del dispositivo ottenuto dalla funzione CreateFile . Impostare anche il membro dbch_devicetype su DBT_DEVTYP_HANDLE. La funzione restituisce un handle di notifica del dispositivo. Si noti che questo non è lo stesso dell'handle del volume.
Quando l'applicazione riceve la notifica, se il tipo di evento è DBT_CUSTOMEVENT, potrebbe essere stato ricevuto uno degli eventi del dispositivo definiti in IoEvent.h. Per determinare se si è verificato uno di questi eventi, seguire questa procedura.
- Considerare i dati dell'evento come struttura DEV_BROADCAST_HDR . Verificare che il membro dbch_devicetype sia impostato su DBT_DEVTYP_HANDLE.
- Se dbch_devicetype è DBT_DEVTYP_HANDLE , i dati dell'evento sono realmente un puntatore a una struttura DEV_BROADCAST_HANDLE .
- Confrontare il membro dbch_eventguid con il GUIDelencato nella tabella seguente usando la funzione IsEqualGUID .
-
GUID_IO_CDROM_EXCLUSIVE_LOCK
-
-
bc56c139-7a10-47ee-a294-4c6a38f0149a
-
Il dispositivo CD-ROM è stato bloccato per l'accesso esclusivo.
Windows Server 2003 e Windows XP: Il supporto per questo valore richiede IMAPI 2.0. Per altre informazioni, vedere API Mastering immagini.
-
-
GUID_IO_CDROM_EXCLUSIVE_UNLOCK
-
-
a3b6d27d-5e35-4885-81e5-ee18c00ed779
-
È stato sbloccato un dispositivo CD-ROM bloccato per l'accesso esclusivo.
Windows Server 2003 e Windows XP: Il supporto per questo valore richiede IMAPI 2.0. Per altre informazioni, vedere API Mastering immagini.
-
-
GUID_IO_DEVICE_BECOMING_READY
-
-
d07433f0-a98e-11d2-917a-00a0c9068ff3
-
Lo spin-up multimediale è in corso.
-
-
GUID_IO_DEVICE_EXTERNAL_REQUEST
-
-
d07433d0-a98e-11d2-917a-00a0c9068ff3
-
Esistono diverse possibili cause per questo evento; per altre informazioni, vedere la specifica T10 MMC del comando GET EVENT STATUS NOTIFICATION.
-
-
GUID_IO_MEDIA_ARRIVAL
-
-
d0743c0-a98e-11d2-917a-00a0c9068ff3
-
I supporti rimovibili sono stati aggiunti al dispositivo. Il membro dbch_data è un puntatore a una struttura di CLASS_MEDIA_CHANGE_CONTEXT . Il membro NewState fornisce informazioni sullo stato. Ad esempio, un valore di MediaUnavailable indica che il supporto non è disponibile, ad esempio a causa di una sessione di registrazione attiva.
Windows XP: Il dbch_data membro è un valore ULONG che rappresenta il numero di volte in cui il supporto è stato modificato dall'avvio del sistema.
-
-
GUID_IO_MEDIA_EJECT_REQUEST
-
-
d07433d1-a98e-11d2-917a-00a0c9068ff3
-
L'unità del supporto rimovibile ha ricevuto una richiesta dall'utente per espellere lo slot o il supporto specificato.
-
-
GUID_IO_MEDIA_REMOVAL
-
-
d0743c1-a98e-11d2-917a-00a0c9068ff3
-
I supporti rimovibili sono stati rimossi dal dispositivo o non sono disponibili. Il membro dbch_data è un puntatore a una struttura di CLASS_MEDIA_CHANGE_CONTEXT . Il membro NewState fornisce informazioni sullo stato. Ad esempio, un valore di MediaUnavailable indica che il supporto non è disponibile, ad esempio a causa di una sessione di registrazione attiva.
Windows XP: Il dbch_data membro è un valore ULONG che rappresenta il numero di volte in cui il supporto è stato modificato dall'avvio del sistema.
-
-
GUID_IO_VOLUME_CHANGE
-
-
7373654a-812a-11d0-bec7-08002be2092f
-
L'etichetta del volume è stata modificata.
-
-
GUID_IO_VOLUME_CHANGE_SIZE
-
-
3a1625be-ad03-49f1-8ef8-6bbac182d1fd
-
Le dimensioni del file system nel volume sono state modificate.
Windows Server 2003 e Windows XP: Questo valore non è supportato.
-
-
GUID_IO_VOLUME_DISMOUNT
-
-
d16a55e8-1059-11d2-8ffd-00a0c9a06d32
-
Un tentativo di smontare il volume è in corso. È consigliabile chiudere tutti gli handle ai file e alle directory nel volume. Questo evento non sarà necessariamente preceduto da un evento GUID_IO_VOLUME_LOCK .
-
-
GUID_IO_VOLUME_DISMOUNT_FAILED
-
-
e3c5b178-105d-11d2-8ffd-00a0c9a06d32
-
Tentativo di smontare un volume non riuscito. Questo accade spesso perché un altro processo non è riuscito a rispondere a un GUID_IO_VOLUME_DISMOUNT avviso chiudendo i relativi handle in sospeso. Poiché la smontaggio non è riuscita, è possibile riaprire eventuali handle nel volume interessato.
-
-
GUID_IO_VOLUME_FVE_STATUS_CHANGE
-
-
062998b2-ee1f-4b6a-b857-e76cbbe9a6da
-
Lo stato di Crittografia unità BitLocker del volume è cambiato. Questo evento viene segnalato quando BitLocker è abilitato o disabilitato o quando inizia la crittografia, termina, sospende o riprende.
Windows Server 2003 e Windows XP: Questo valore non è supportato.
-
-
GUID_IO_VOLUME_LOCK
-
-
50708874-c9af-11d1-8fef-00a0c9a06d32
-
Un altro processo sta tentando di bloccare il volume. È consigliabile chiudere tutti gli handle ai file e alle directory nel volume.
-
-
GUID_IO_VOLUME_LOCK_FAILED
-
-
ae2eed10-0ba8-11d2-8ffb-00a0c9a06d32
-
Tentativo di bloccare un volume non riuscito. Questo accade spesso perché un altro processo non è riuscito a rispondere a un evento GUID_IO_VOLUME_LOCK chiudendo i relativi handle in sospeso. Poiché il blocco non è riuscito, è possibile riaprire eventuali handle nel volume interessato.
-
-
GUID_IO_VOLUME_MOUNT
-
-
b5804878-1a96-11d2-8ffd-00a0c9a06d32
-
Il volume è stato montato da un altro processo. È possibile aprire uno o più handle.
-
-
GUID_IO_VOLUME_NAME_CHANGE
-
-
2de97f83-4c06-11d2-a532-00609713055a
-
Il nome del volume è stato modificato.
-
-
GUID_IO_VOLUME_NEED_CHKDSK
-
-
799a0960-0a0b-4e03-ad88-2fa7c6ce748a
-
Un file system ha rilevato il danneggiamento del volume. L'applicazione deve eseguire CHKDSK nel volume o inviare una notifica all'utente.
Windows Server 2003 e Windows XP: Questo valore non è supportato.
-
-
GUID_IO_VOLUME_PHYSICAL_CONFIGURATION_CHANGE
-
-
2de97f84-4c06-11d2-a532-00609713055a
-
Il trucco fisico o lo stato fisico corrente del volume è cambiato.
-
-
GUID_IO_VOLUME_PREPARING_EJECT
-
-
c79eb16e-0dac-4e7a-a86c-b25ceeaa8f6
-
Il file system sta preparando il disco da inserire. Ad esempio, il file system arresta un'operazione di formattazione in background o chiude la sessione sui supporti di scrittura.
Windows Server 2003 e Windows XP: Questo valore non è supportato.
-
-
GUID_IO_VOLUME_UNIQUE_ID_CHANGE
-
-
af39da42-6622-41f5-970b-139d092fa3d9
-
L'identificatore univoco del volume è stato modificato. Per altre informazioni sull'identificatore univoco, vedere IOCTL_MOUNTDEV_QUERY_UNIQUE_ID.
Windows Server 2008, Windows Vista, Windows Server 2003 e Windows XP: Questo valore non è supportato fino a Windows Server 2008 R2 e Windows 7.
-
-
GUID_IO_VOLUME_UNLOCK
-
-
9a8c3d68-d0cb-11d1-8fef-00a0c9a06d32
-
Il volume è stato sbloccato da un altro processo. È possibile aprire uno o più handle.
-
-
GUID_IO_VOLUME_WEARING_OUT
-
-
873113ca-1486-4508-82ac-c3b2e5297aaaa
-
Il supporto sta indossando. Questo evento viene inviato quando un file system determina che la frequenza di errore in un volume è troppo elevata oppure lo spazio di sostituzione dei difetti è quasi esaurito.
Windows Server 2003 e Windows XP: Questo valore non è supportato.
-
Commenti
Gli eventi GUID_IO_VOLUME_DISMOUNT e GUID_IO_VOLUME_DISMOUNT_FAILED sono correlati, come sono l'evento GUID_IO_VOLUME_LOCK e GUID_IO_VOLUME_LOCK_FAILED. Gli eventi GUID_IO_VOLUME_DISMOUNT e GUID_IO_VOLUME_LOCK indicano che viene tentata un'operazione. È consigliabile agire sulla notifica dell'evento e registrare l'azione eseguita. Gli eventi GUID_IO_VOLUME_DISMOUNT_FAILED e GUID_IO_VOLUME_LOCK_FAILED indicano che l'operazione tentata non è riuscita. È quindi possibile usare il record per annullare le azioni eseguite in risposta all'operazione.
Il dbch_hdevnotify membro della struttura DEV_BROADCAST_HANDLE indica il dispositivo interessato. Si noti che si tratta dell'handle di notifica del dispositivo restituito da RegisterDeviceNotification, non da un handle di volume. Per eseguire operazioni sul volume, eseguire il mapping di questo handle all'handle del volume corrispondente.
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato |
Windows XP |
Server minimo supportato |
Windows Server 2003 |
Intestazione |
|