HW_DPC_ROUTINE fungsi panggilan balik (storport.h)
Rutinitas HwStorDpcRoutine adalah rutinitas yang ditangguhkan untuk eksekusi di DISPATCH IRQL dengan mekanisme panggilan prosedur yang ditangguhkan (DPC).
Sintaks
HW_DPC_ROUTINE HwDpcRoutine;
void HwDpcRoutine(
PSTOR_DPC Dpc,
PVOID HwDeviceExtension,
PVOID SystemArgument1,
PVOID SystemArgument2
)
{...}
Parameter
Dpc
Penunjuk ke konteks Storport DPC.
HwDeviceExtension
Penunjuk ke ekstensi perangkat per adaptor.
SystemArgument1
Penunjuk ke informasi yang disediakan penelepon.
SystemArgument2
Penunjuk ke informasi yang disediakan penelepon.
Nilai kembali
Tidak ada
Keterangan
Ketika driver miniport memanggil StorPortInitializeDpc untuk menginisialisasi DPC, ia harus memuat parameter HwDpcRoutine dari rutinitas StorPortInitializeDpc dengan pointer ke rutinitas HwStorDpcRoutine .
Setiap instans tertentu dari rutinitas DPC dijamin akan disinkronkan dengan instans rutin DPC lainnya. Rutinitas DPC dapat menyinkronkan dirinya dengan rutinitas HwStorStartIo atau dengan rutinitas HwStorInterrupt dengan memperoleh kunci spin yang sesuai dengan panggilan ke StorPortAcquireSpinLock. Untuk informasi selengkapnya tentang pengelolaan kunci spin dalam rutinitas DPC, lihat StorPortIssueDpc.
Nama HwStorDpcRoutine hanyalah tempat penampung. Prototipe aktual dari rutinitas ini didefinisikan dalam storport.h sebagai berikut:
typedef
BOOLEAN
HW_DPC_ROUTINE (
_In_ PSTOR_DPC Dpc,
_In_ PVOID HwDeviceExtension,
_In_opt_ PVOID SystemArgument1,
_In_opt_ PVOID SystemArgument2
);
Driver port memanggil rutinitas HwStorDpcRoutine di DISPATCH IRQL.
Contoh
Untuk menentukan fungsi panggilan balik HwStorDpcRoutine , Anda harus terlebih dahulu memberikan deklarasi fungsi yang mengidentifikasi jenis fungsi panggilan balik yang Anda tentukan. Windows menyediakan sekumpulan tipe fungsi panggilan balik untuk driver. Mendeklarasikan fungsi menggunakan jenis fungsi panggilan balik membantu Analisis Kode untuk Driver, Pemverifikasi Driver Statis (SDV), dan alat verifikasi lainnya menemukan kesalahan, dan itu adalah persyaratan untuk menulis driver untuk sistem operasi Windows.
Misalnya, untuk menentukan rutinitas panggilan balik HwStorDpcRoutine yang bernama MyHwDpcRoutine, gunakan jenis HW_DPC_ROUTINE seperti yang ditunjukkan dalam contoh kode ini:
HW_DPC_ROUTINE MyHwDpcRoutine;
Kemudian, terapkan rutinitas panggilan balik Anda sebagai berikut:
_Use_decl_annotations_
BOOLEAN
MyHwDpcRoutine (
_In_ PSTOR_DPC Dpc,
_In_ PVOID HwDeviceExtension,
_In_opt_ PVOID SystemArgument1,
_In_opt_ PVOID SystemArgument2
);
{
...
}
Jenis fungsi HW_DPC_ROUTINE didefinisikan dalam file header Storport.h. Untuk mengidentifikasi kesalahan secara lebih akurat saat Anda menjalankan alat analisis kode, pastikan untuk menambahkan anotasi Use_decl_annotations ke definisi fungsi Anda. Anotasi Use_decl_annotations memastikan bahwa anotasi yang diterapkan ke jenis fungsi HW_DPC_ROUTINE dalam file header digunakan. Untuk informasi selengkapnya tentang persyaratan untuk deklarasi fungsi, lihat Mendeklarasikan Fungsi Menggunakan Jenis Peran Fungsi untuk Driver Storport. Untuk informasi tentang Use_decl_annotations, lihat Perilaku Fungsi Anotasi.
Persyaratan
Persyaratan | Nilai |
---|---|
Target Platform | Universal |
Header | storport.h (termasuk Storport.h) |
IRQL | DISPATCH_LEVEL (Lihat bagian Keterangan.) |
Lihat juga
Ketika driver miniport memanggil untuk menginisialisasi DPC, ia harus memuat parameter HwDpcRoutine dari rutinitas StorPortInitializeDpc dengan pointer ke rutinitas HwStorDpcRoutine .
Setiap instans tertentu dari rutinitas DPC dijamin akan disinkronkan dengan instans rutin DPC lainnya. Rutinitas DPC dapat menyinkronkan dirinya dengan rutinitas atau dengan rutinitas dengan memperoleh kunci putar yang sesuai dengan panggilan ke . Untuk informasi selengkapnya tentang pengelolaan kunci spin dalam rutinitas DPC, lihat .