Fungsi StorPortLogSystemEvent (storport.h)

Rutinitas StorPortLogSystemEvent memberi driver miniport akses penuh ke kemampuan fasilitas acara kernel Windows, memungkinkan driver miniport untuk membuat entri log peristiwa yang benar-benar berguna dalam memecahkan masalah penyimpanan. Ini memberikan alternatif yang lebih baik untuk fungsi pengelogan peristiwa driver miniport yang ada, StorPortLogError.

Sintaks

ULONG StorPortLogSystemEvent(
  [in]      PVOID                   HwDeviceExtension,
  [in, out] PSTOR_LOG_EVENT_DETAILS LogDetails,
  [in, out] PULONG                  MaximumSize
);

Parameter

[in] 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 miniport segera setelah driver miniport memanggil StorPortInitialize. Driver port membebaskan memori ini ketika melepas perangkat.

[in, out] LogDetails

Struktur STOR_LOG_EVENT_DETAILS yang berisi informasi untuk muncul di entri log peristiwa sistem.

[in, out] MaximumSize

Variabel untuk menerima ukuran gabungan maksimum data dan string cadangan miniport. Hanya dikembalikan jika fungsi gagal dan mengembalikan nilai STOR_STATUS_INVALID_BUFFER_SIZE. Parameter ini bersifat opsional.

Mengembalikan nilai

Menampilkan kode Deskripsi
STOR_STATUS_NOT_IMPLEMENTED
Fungsi ini tidak diimplementasikan pada sistem operasi aktif.
STOR_STATUS_INVALID_PARAMETER
Parameter yang tidak valid diteruskan.
STOR_STATUS_INVALID_IRQL
Panggilan dilakukan di IRQL > DISPATCH_LEVEL.
STOR_STATUS_INSUFFICIENT_RESOURCES
Sumber daya sistem tidak cukup untuk menyelesaikan permintaan.
STOR_STATUS_UNSUPPORTED_VERSION:
Versi struktur STOR_LOG_EVENT_DETAILS yang tidak didukung (misalnya, yang lebih baru) ditentukan. Ketika ini dikembalikan, LogDetails->InterfaceRevision diatur ke versi terbaru yang didukung.
STOR_STATUS_INVALID_BUFFER_SIZE
Buffer yang diteruskan ke fungsi terlalu besar. Ketika nilai ini dikembalikan, MaximumSize diatur ke ukuran gabungan maksimum data dan string cadangan miniport.
STOR_STATUS_SUCCESS
Operasi log berhasil diselesaikan.

Keterangan

Untuk memahami bagaimana Anda dapat menggunakan kode kesalahan kustom untuk keuntungan terbaik, lihat Ekstensi Log Kesalahan Storport. Rutinitas StorPortLogSystemEvent harus dipanggil di IRQL <= DISPATCH_LEVEL. Jika Anda meneruskan versi STOR_LOG_EVENT_DETAILS yang lebih baru daripada yang didukung oleh build ini, fungsi ini mengubah bidang InterfaceRevision ke versi terbaru yang didukung dan mengembalikan STOR_STATUS_UNSUPPORTED_VERSION. Bidang InterfaceRevision STOR_LOG_EVENT_DETAILS adalah nilai 32-bit. Namun, hanya tiga byte paling signifikan yang digunakan untuk validasi. Byte rendah disediakan untuk membedakan antara variasi kecil yang kompatibel dari versi tertentu. Misalnya, struktur 0x00000101 revisi kompatibel dengan Storport yang mengimplementasikan 0x00000100 revisi antarmuka, meskipun ada kemungkinan bahwa beberapa fungsionalitas kecil dan nonkritis mungkin hilang. Jika Anda menentukan ukuran gabungan data cadangan dan string yang melebihi ukuran entri log peristiwa maksimum yang diizinkan, bilangan bulat yang diarahkan oleh MaximumSize diatur ke ukuran maksimum data dan string cadangan miniport yang diizinkan, dan STOR_INVALID_BUFFER_SIZE dikembalikan. Meskipun fungsi ini menerima nilai ULONG untuk penentu alamat jalur, target, dan LUN, nilai dipotong ke nilai UCHAR karena Storport secara internal hanya mendukung nilai 8-bit untuk penentu ini.

Persyaratan

Persyaratan Nilai
Target Platform Universal
Header storport.h (termasuk Storport.h)
Aturan kepatuhan DDI StorPortIrql(storport)

Lihat juga

StorPortLogError