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 kali membandingkan jumlahnya dengan EpicNumber manajer pemasangan.
  • Jika jumlah yang disediakan oleh klien sama dengan EpicNumber, manajer pemasangan menginterpretasikan ini sebagai permintaan untuk diberi tahu tentang perubahan berikutnya pada database nama persisten, dan mengantre 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 volume tertentu disarankan untuk mendaftar pemberitahuan perangkat target Plug and Play dan watch untuk GUID_IO_VOLUME_NAME_CHANGE.

Kode utama

IRP_MJ_DEVICE_CONTROL

Buffer input

Klien mount manager menginisialisasi struktur MOUNTMGR_CHANGE_NOTIFY_INFO, yang ditentukan dalam Mountmgr.h, 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, yang ditentukan dalam Mountmgr.h, di awal buffer di Irp-AssociatedIrp.SystemBuffer>.

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.

Persyaratan

Persyaratan Nilai
Header mountmgr.h (termasuk Mountmgr.h)

Lihat juga

MOUNTMGR_CHANGE_NOTIFY_INFO