IOCTL_MOUNTMGR_CHANGE_NOTIFY IOCTL (mountmgr.h)
Klien mengirim IOCTL ini ke manajer pemasangan untuk diberi tahu setiap kali ada perubahan dalam database nama tautan simbolis persisten manajer pemasangan.
Manajer pemasangan mempertahankan penghitung yang disebut EpicNumber yang merekam berapa banyak perubahan yang terjadi dalam database nama persistennya sejak startup terakhir. Klien mengirim nomor ke manajer pemasangan dengan setiap permintaan pemberitahuan perubahan IRP, dan manajer pemasangan merespons dengan cara berikut:
Jika jumlah yang disediakan oleh klien tidak sama dengan EpicNumber, manajer pemasangan mengembalikan STATUS_SUCCESS, menunjukkan bahwa perubahan telah terjadi sejak klien terakhir membandingkan jumlahnya dengan EpicNumber manajer pemasangan.
Jika nomor yang disediakan oleh klien sama dengan EpicNumber, manajer pemasangan menafsirkan ini sebagai permintaan untuk diberitahu tentang perubahan berikutnya ke database nama persisten, dan mengantrekan IRP pemberitahuan perubahan dan mengembalikan STATUS_PENDING. Setiap kali perubahan terjadi dalam database, manajer pemasangan menyelesaikan semua IRP pemberitahuan perubahan yang tertunda, sehingga memberi tahu klien tentang perubahan tersebut.
Klien yang hanya ingin diberi tahu tentang perubahan pada volume tertentu disarankan untuk mendaftar pemberitahuan perangkat target Plug and Play dan mengawasi GUID_IO_VOLUME_NAME_CHANGE.
Kode utama
Buffer input
Klien manajer pemasangan menginisialisasi struktur MOUNTMGR_CHANGE_NOTIFY_INFO di awal buffer di Irp-AssociatedIrp.SystemBuffer>.
Panjang buffer input
Parameters.DeviceIoControl.InputBufferLength di lokasi tumpukan I/O IRP menunjukkan ukuran, dalam byte, dari buffer input, yang harus lebih besar dari atau sama dengan sizeof(MOUNTMGR_CHANGE_NOTIFY_INFO)
.
Buffer output
Manajer pemasangan mengembalikan EpicNumber saat ini dalam struktur MOUNTMGR_CHANGE_NOTIFY_INFO di awal buffer di Irp-AssociatedIrp.SystemBuffer>.
Panjang buffer output
Tidak ada.
Buffer Input/Output
T/A
Panjang buffer Input/Output
T/A
Blok status
Jika operasi berhasil, bidang Status diatur ke STATUS_SUCCESS dan bidang Informasi diatur ke sizeof(MOUNTMGR_CHANGE_NOTIFY_INFO)
.
Jika InputBufferLength kurang dari sizeof(MOUNTMGR_CHANGE_NOTIFY_INFO)
atau OutputBufferLength kurang dari sizeof(MOUNTMGR_CHANGE_NOTIFY_INFO)
, bidang Status diatur ke STATUS_INVALID_PARAMETER.
Keterangan
Untuk informasi selengkapnya, lihat Mendukung Permintaan Mount Manager di Driver Kelas Penyimpanan.
Persyaratan
Persyaratan | Nilai |
---|---|
Header | mountmgr.h (termasuk Mountmgr.h) |