Bagikan melalui


Peristiwa Perangkat (IoEvent.h)

Aplikasi, termasuk layanan, dapat mendaftar untuk menerima pemberitahuan peristiwa perangkat. Misalnya, layanan katalog dapat menerima pemberitahuan volume yang dipasang atau dilepas sehingga dapat menyesuaikan jalur ke file pada volume. Sistem memberi tahu aplikasi bahwa peristiwa perangkat telah terjadi dengan mengirim aplikasi pesan WM_DEVICECHANGE . Sistem memberi tahu layanan bahwa peristiwa perangkat telah terjadi dengan memanggil fungsi penanganan aktivitas layanan, HandlerEx.

Untuk menerima pemberitahuan peristiwa perangkat, panggil fungsi RegisterDeviceNotification dengan struktur DEV_BROADCAST_HANDLE . Pastikan untuk mengatur anggota dbch_handle ke handel perangkat yang diperoleh dari fungsi CreateFile . Selain itu, atur anggota dbch_devicetype ke DBT_DEVTYP_HANDLE. Fungsi mengembalikan handel pemberitahuan perangkat. Perhatikan bahwa ini tidak sama dengan handel volume.

Saat aplikasi Anda menerima pemberitahuan, jika jenis peristiwa DBT_CUSTOMEVENT, Anda mungkin telah menerima salah satu peristiwa perangkat yang ditentukan dalam IoEvent.h. Untuk menentukan apakah salah satu peristiwa ini telah terjadi, gunakan langkah-langkah berikut.

  1. Perlakukan data peristiwa sebagai struktur DEV_BROADCAST_HDR . Verifikasi bahwa anggota dbch_devicetype diatur ke DBT_DEVTYP_HANDLE.
  2. Jika dbch_devicetypeDBT_DEVTYP_HANDLE, data peristiwa benar-benar penunjuk ke struktur DEV_BROADCAST_HANDLE .
  3. Bandingkan anggota dbch_eventguid dengan GUIDyang tercantum dalam tabel berikut menggunakan fungsi IsEqualGUID .

GUID_IO_CDROM_EXCLUSIVE_LOCK

bc56c139-7a10-47ee-a294-4c6a38f0149a

Perangkat CD-ROM telah dikunci untuk akses eksklusif.

Windows Server 2003 dan Windows XP: Dukungan untuk nilai ini memerlukan IMAPI 2.0. Untuk informasi selengkapnya, lihat IMAGE Mastering API.

GUID_IO_CDROM_EXCLUSIVE_UNLOCK

a3b6d27d-5e35-4885-81e5-ee18c00ed779

Perangkat CD-ROM yang dikunci untuk akses eksklusif telah dibuka kuncinya.

Windows Server 2003 dan Windows XP: Dukungan untuk nilai ini memerlukan IMAPI 2.0. Untuk informasi selengkapnya, lihat IMAGE Mastering API.

GUID_IO_DEVICE_BECOMING_READY

d07433f0-a98e-11d2-917a-00a0c9068ff3

Spin-up media sedang berlangsung.

GUID_IO_DEVICE_EXTERNAL_REQUEST

d07433d0-a98e-11d2-917a-00a0c9068ff3

Ada beberapa kemungkinan penyebab untuk peristiwa ini; untuk informasi selengkapnya, lihat spesifikasi T10 MMC dari Perintah DAPATKAN PEMBERITAHUAN STATUS PERISTIWA.

GUID_IO_MEDIA_ARRIVAL

d07433c0-a98e-11d2-917a-00a0c9068ff3

Media yang dapat dilepas telah ditambahkan ke perangkat. Anggota dbch_data adalah penunjuk ke struktur CLASS_MEDIA_CHANGE_CONTEXT . Anggota NewState menyediakan informasi status. Misalnya, nilai MediaUnavailable menunjukkan bahwa media tidak tersedia (misalnya, karena sesi perekaman aktif).

Windows XP: Anggota dbch_data adalah nilai ULONG yang mewakili berapa kali media diubah sejak startup sistem.

GUID_IO_MEDIA_EJECT_REQUEST

d07433d1-a98e-11d2-917a-00a0c9068ff3

Drive media yang dapat dilepas telah menerima permintaan dari pengguna untuk mengeluarkan slot atau media yang ditentukan.

GUID_IO_MEDIA_REMOVAL

d07433c1-a98e-11d2-917a-00a0c9068ff3

Media yang bisa dilepas telah dihapus dari perangkat atau tidak tersedia. Anggota dbch_data adalah penunjuk ke struktur CLASS_MEDIA_CHANGE_CONTEXT . Anggota NewState menyediakan informasi status. Misalnya, nilai MediaUnavailable menunjukkan bahwa media tidak tersedia (misalnya, karena sesi perekaman aktif).

Windows XP: Anggota dbch_data adalah nilai ULONG yang mewakili berapa kali media diubah sejak startup sistem.

GUID_IO_VOLUME_CHANGE

7373654a-812a-11d0-bec7-08002be2092f

Label volume telah berubah.

GUID_IO_VOLUME_CHANGE_SIZE

3a1625be-ad03-49f1-8ef8-6bbac182d1fd

Ukuran sistem file pada volume telah berubah.

Windows Server 2003 dan Windows XP: Nilai ini tidak didukung.

GUID_IO_VOLUME_DISMOUNT

d16a55e8-1059-11d2-8ffd-00a0c9a06d32

Upaya untuk melepas volume sedang berlangsung. Anda harus menutup semua handel ke file dan direktori pada volume. Kejadian ini belum tentu akan didahului oleh peristiwa GUID_IO_VOLUME_LOCK .

GUID_IO_VOLUME_DISMOUNT_FAILED

e3c5b178-105d-11d2-8ffd-00a0c9a06d32

Upaya untuk melepas volume gagal. Ini sering terjadi karena proses lain gagal merespons pemberitahuan GUID_IO_VOLUME_DISMOUNT dengan menutup handel yang luar biasa. Karena pembuangan gagal, Anda dapat membuka kembali handel apa pun ke volume yang terpengaruh.

GUID_IO_VOLUME_FVE_STATUS_CHANGE

062998b2-ee1f-4b6a-b857-e76cbbe9a6da

Status Enkripsi Kandar BitLocker volume telah berubah. Kejadian ini disinyalir ketika BitLocker diaktifkan atau dinonaktifkan, atau ketika enkripsi dimulai, berakhir, dijeda, atau dilanjutkan.

Windows Server 2003 dan Windows XP: Nilai ini tidak didukung.

GUID_IO_VOLUME_LOCK

50708874-c9af-11d1-8fef-00a0c9a06d32

Proses lain sedang mencoba mengunci volume. Anda harus menutup semua handel ke file dan direktori pada volume.

GUID_IO_VOLUME_LOCK_FAILED

ae2eed10-0ba8-11d2-8ffb-00a0c9a06d32

Upaya untuk mengunci volume gagal. Ini sering terjadi karena proses lain gagal merespons peristiwa GUID_IO_VOLUME_LOCK dengan menutup handel yang luar biasa. Karena kunci gagal, Anda dapat membuka kembali handel apa pun ke volume yang terpengaruh.

GUID_IO_VOLUME_MOUNT

b5804878-1a96-11d2-8ffd-00a0c9a06d32

Volume telah dipasang oleh proses lain. Anda dapat membuka satu atau beberapa handel untuk itu.

GUID_IO_VOLUME_NAME_CHANGE

2de97f83-4c06-11d2-a532-00609713055a

Nama volume telah diubah.

GUID_IO_VOLUME_NEED_CHKDSK

799a0960-0a0b-4e03-ad88-2fa7c6ce748a

Sistem file telah mendeteksi kerusakan pada volume. Aplikasi harus menjalankan CHKDSK pada volume atau memberi tahu pengguna untuk melakukannya.

Windows Server 2003 dan Windows XP: Nilai ini tidak didukung.

GUID_IO_VOLUME_PHYSICAL_CONFIGURATION_CHANGE

2de97f84-4c06-11d2-a532-00609713055a

Makeup fisik atau status fisik volume saat ini telah berubah.

GUID_IO_VOLUME_PREPARING_EJECT

c79eb16e-0dac-4e7a-a86c-b25ceeaa88f6

Sistem file sedang mempersiapkan cakram yang akan dikeluarkan. Misalnya, sistem file menghentikan operasi pemformatan latar belakang atau menutup sesi pada media tulis-sekali.

Windows Server 2003 dan Windows XP: Nilai ini tidak didukung.

GUID_IO_VOLUME_UNIQUE_ID_CHANGE

af39da42-6622-41f5-970b-139d092fa3d9

Pengidentifikasi unik volume telah diubah. Untuk informasi selengkapnya tentang pengidentifikasi unik, lihat IOCTL_MOUNTDEV_QUERY_UNIQUE_ID.

Windows Server 2008, Windows Vista, Windows Server 2003 dan Windows XP: Nilai ini tidak didukung sampai Windows Server 2008 R2 dan Windows 7.

GUID_IO_VOLUME_UNLOCK

9a8c3d68-d0cb-11d1-8fef-00a0c9a06d32

Volume telah dibuka kuncinya oleh proses lain. Anda dapat membuka satu atau beberapa handel untuk itu.

GUID_IO_VOLUME_WEARING_OUT

873113ca-1486-4508-82ac-c3b2e5297aaa

Media sedang aus. Kejadian ini dikirim ketika sistem file menentukan bahwa tingkat kesalahan pada volume terlalu tinggi, atau ruang penggantian cacatnya hampir habis.

Windows Server 2003 dan Windows XP: Nilai ini tidak didukung.

Keterangan

Peristiwa GUID_IO_VOLUME_DISMOUNT dan GUID_IO_VOLUME_DISMOUNT_FAILED terkait, seperti halnya peristiwa GUID_IO_VOLUME_LOCK dan GUID_IO_VOLUME_LOCK_FAILED . Peristiwa GUID_IO_VOLUME_DISMOUNT dan GUID_IO_VOLUME_LOCK menunjukkan bahwa operasi sedang dicoba. Anda harus bertindak pada pemberitahuan peristiwa, dan merekam tindakan yang diambil. Peristiwa GUID_IO_VOLUME_DISMOUNT_FAILED dan GUID_IO_VOLUME_LOCK_FAILED menunjukkan bahwa operasi yang dicoba gagal. Anda kemudian dapat menggunakan catatan Anda untuk membatalkan tindakan yang Anda buat sebagai respons terhadap operasi.

Anggota dbch_hdevnotify struktur DEV_BROADCAST_HANDLE menunjukkan perangkat yang terpengaruh. Perhatikan bahwa ini adalah handel pemberitahuan perangkat yang dikembalikan oleh RegisterDeviceNotification, bukan handel volume. Untuk melakukan operasi pada volume, petakan handel ini ke handel volume yang sesuai.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung
Windows XP
Server minimum yang didukung
Windows Server 2003
Header
IoEvent.h