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 .

HwStorInterrupt

HwStorStartIo

StorPortAcquireSpinLock

StorPortInitializeDpc

StorPortIssueDpc