Fungsi StorPortNotification (storport.h)
Driver miniport menggunakan rutinitas StorPortNotification untuk memberi tahu driver Storport tentang peristiwa dan kondisi tertentu.
StorPortNotification mengambil jumlah variabel parameter tergantung pada jenis pemberitahuan yang ditentukan.
Sintaks
STORPORT_API VOID StorPortNotification(
SCSI_NOTIFICATION_TYPE NotificationType,
PVOID HwDeviceExtension,
...
);
Parameter
NotificationType
Menentukan jenis pemberitahuan, yang bisa menjadi salah satu nilai berikut.
Jenis pemberitahuan | Deskripsi |
---|---|
BufferOverrunDetected | Jenis pemberitahuan ini tidak memiliki argumen dan memberi driver miniport kesempatan untuk memeriksa bug sistem jika mendeteksi kerusakan. |
BusChangeDetected |
Menunjukkan bahwa perangkat target mungkin telah ditambahkan atau dihapus dari bus dinamis. Untuk menggunakan jenis pemberitahuan ini, sertakan parameter PathId opsional untuk menunjukkan port atau bus SCSI tempat perubahan terdeteksi.
|
IoTargetRequestServiceTime |
Menunjukkan ke Storport jumlah waktu yang diperlukan untuk memproses permintaan tertentu.
Durasi [in] Durasi waktu layanan yang diperlukan untuk Srb dalam 100 unit nanodetik. Srb [in] Blok permintaan untuk mengatur waktu layanan. |
LinkDown | Menunjukkan bahwa tautan tidak berfungsi dan mungkin akan turun selama beberapa waktu. StorPort akan menjeda adaptor sebagai respons terhadap pemberitahuan ini. |
LinkUp | Menunjukkan bahwa tautan telah dipulihkan. StorPort memulai ulang adaptor sehingga dapat melanjutkan operasi sebagai respons terhadap pemberitahuan ini. Driver miniport tidak boleh mengirim pemberitahuan ini kecuali tautan tidak berfungsi. |
QueryTickCount |
Jenis pemberitahuan ini mengembalikan LARGE_INTEGER yang menyimpan nilai dari KeQueryTickCount. Nilai yang dikembalikan dalam TickCount adalah hitungan interupsi timer interval yang telah terjadi sejak sistem di-boot
|
RequestComplete |
Menunjukkan bahwa SRB yang diberikan telah selesai. Setelah pemberitahuan ini dikirim, driver port memiliki permintaan. Parameter Srb mewakili penunjuk ke blok permintaan SCSI yang telah selesai. Driver miniport tidak boleh mencoba mengakses permintaan di Srb, dan tidak boleh meneruskan Srb ke rutinitas lain.
|
RequestTimerCall |
Menunjukkan bahwa driver miniport mengharuskan driver port untuk memanggil rutinitas HwStorTimer driver miniport dalam jumlah microsecond yang diminta.
HwStorTimer [in] Penunjuk ke rutinitas timer yang dipanggil setelah interval waktu yang ditentukan dalam MiniportTimerValue. MiniportTimerValue [in] Menunjukkan interval setelah itu rutinitas timer yang diarahkan oleh HwStorTimer dipanggil. Ini adalah nilai positif yang ditentukan dalam mikro detik. Nilai 0 akan membatalkan timer. Resolusi timer sistem adalah sekitar 10 milidetik. |
ResetDetected | Menunjukkan bahwa HBA telah mendeteksi pengaturan ulang pada bus. Setelah pemberitahuan ini dikirim, driver miniport masih bertanggung jawab untuk menyelesaikan permintaan aktif apa pun. Driver port akan mengelola semua penundaan pengaturan ulang bus yang diperlukan. |
WMIEvent |
Menunjukkan bahwa driver miniport telah mendeteksi peristiwa di mana satu atau beberapa konsumen data WMI terdaftar. Perhatikan bahwa parameter WmiEvent dibatasi hingga maksimum 128 byte. Jika WmiEvent lebih besar dari 128 byte, WmiEvent akan diabaikan.
WMIEvent [in] Penunjuk ke struktur peristiwa yang memiliki informasi tentang peristiwa WMI yang terdeteksi oleh driver miniport. PathId [in] Menunjukkan port atau bus SCSI untuk permintaan tersebut. Atur parameter ini ke 0xff untuk perangkat adaptor. Jika tidak, atur ke ID jalur yang valid. TargetId [in, opsional] Menunjukkan pengontrol target atau perangkat di bus. Parameter ini tidak digunakan ketika peristiwa adalah untuk adaptor. Lun [in, opsional] Menunjukkan nomor unit logis perangkat. Parameter ini tidak digunakan ketika peristiwa adalah untuk adaptor. |
WMIRegister |
Menunjukkan bahwa driver miniport telah mengubah item data atau jumlah instans blok data tertentu yang sebelumnya terdaftar dengan memanggil IoWMIRegistrationControl.
PathId [in] Menunjukkan port atau bus SCSI untuk permintaan tersebut. Atur parameter ini ke 0xff untuk perangkat adaptor. Jika tidak, atur ke ID jalur yang valid. TargetId [in, opsional] Menunjukkan pengontrol target atau perangkat di bus. Parameter ini tidak digunakan ketika pendaftaran adalah untuk adaptor. Lun [in, opsional] Menunjukkan nomor unit logis perangkat. Parameter ini tidak digunakan ketika pendaftaran adalah untuk adaptor. |
HwDeviceExtension
Penunjuk ke ekstensi perangkat keras. Ini adalah area penyimpanan per HBA yang dialokasikan dan diinisialisasi driver port atas nama driver miniport. Driver miniport biasanya menyimpan informasi khusus HBA dalam ekstensi ini, seperti status HBA dan rentang akses yang dipetakan untuk HBA. Area ini tersedia untuk driver miniport segera setelah driver miniport memanggil StorPortInitialize. Driver port membebaskan memori ini ketika melepas perangkat.
...
Parameter Tambahan.
Mengembalikan nilai
Tidak ada.
Keterangan
StorPortNotification adalah fungsi polimorfik yang menangani berbagai jenis permintaan, sehingga sulit untuk membuat anotasi dengan cara yang akan mencakup semua kemungkinan penggunaan. Karena StorPortNotification mengembalikan VOID, mesin pemindaian harus mengasumsikan LockHandle diperoleh seperti yang diminta.
Persyaratan
Persyaratan | Nilai |
---|---|
Target Platform | Universal |
Header | storport.h (termasuk Storport.h) |
Pustaka | Storport.lib |
Aturan kepatuhan DDI | StorPortNotification2(storport), StorPortStatusPending, StorPortTimer(storport) |