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.
VOID StorPortNotification(
  _In_     SCSI_NOTIFICATION_TYPE NotificationType,
  _In_     PVOID                  HwDeviceExtension,
  _In_opt_ UCHAR                  PathId
);
IoTargetRequestServiceTime Menunjukkan ke Storport jumlah waktu yang diperlukan untuk memproses permintaan tertentu.
VOID StorPortNotification(
  _In_ SCSI_NOTIFICATION_TYPE NotificationType,
  _In_ PVOID                  HwDeviceExtension,
  _In_ ULONGLONG              Duration,
  _In_ PSCSI_REQUEST_BLOCK    Srb
);

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
VOID StorPortNotification(
  _In_    SCSI_NOTIFICATION_TYPE NotificationType,
  _In_    PVOID                  HwDeviceExtension,
  _Inout_ PLARGE_INTEGER         TickCount
);
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.
VOID StorPortNotification(
  _In_ SCSI_NOTIFICATION_TYPE NotificationType,
  _In_ PVOID                  HwDeviceExtension,
  _In_ PSCSI_REQUEST_BLOCK    Srb
);
RequestTimerCall Menunjukkan bahwa driver miniport mengharuskan driver port untuk memanggil rutinitas HwStorTimer driver miniport dalam jumlah microsecond yang diminta.
VOID StorPortNotification(
  _In_ SCSI_NOTIFICATION_TYPE NotificationType,
  _In_ PVOID                  HwDeviceExtension,
  _In_ PHW_TIMER              HwStorTimer,
  _In_ ULONG                  MiniportTimerValue
);

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.
VOID StorPortNotification(
  _In_     SCSI_NOTIFICATION_TYPE NotificationType,
  _In_     PVOID                  HwDeviceExtension,
  _In_     PWNODE_EVENT_ITEM      WMIEvent,
  _In_     UCHAR                  PathId,
  _In_opt_ UCHAR                  TargetId,
  _In_opt_ UCHAR                  Lun
);

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.
VOID StorPortNotification(
  _In_     SCSI_NOTIFICATION_TYPE NotificationType,
  _In_     PVOID                  HwDeviceExtension,
  _In_     UCHAR                  PathId,
  _In_opt_ UCHAR                  TargetId,
  _In_opt_ UCHAR                  Lun
);

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)

Lihat juga

StorPortInitialize