NDIS_TIMER_FUNCTION fungsi panggilan balik (ndis.h)

Fungsi panggilan balik NdisTimerFunction dipanggil oleh NDIS setelah driver menetapkan timer satu bidikan atau berkala saat timer diaktifkan.

Catatan Anda harus mendeklarasikan fungsi dengan menggunakan jenis NDIS_TIMER_FUNCTION . Untuk informasi selengkapnya, lihat bagian Contoh berikut ini.
 

Sintaks

NDIS_TIMER_FUNCTION NdisTimerFunction;

void NdisTimerFunction(
  [in] PVOID SystemSpecific1,
  [in] PVOID FunctionContext,
  [in] PVOID SystemSpecific2,
  [in] PVOID SystemSpecific3
)
{...}

Parameter

[in] SystemSpecific1

Penunjuk ke nilai khusus sistem yang dicadangkan untuk penggunaan sistem.

[in] FunctionContext

Penunjuk ke area konteks yang disediakan driver yang diteruskan driver ke fungsi NdisSetTimerObject . Jika parameter FunctionContext dari NdisSetTimerObject adalah NULL, NDIS menggunakan nilai default yang ditentukan driver dalam NDIS_TIMER_CHARACTERISTICS struktur. Driver meneruskan struktur ke fungsi NdisAllocateTimerObject untuk menginisialisasi objek timer terkait.

[in] SystemSpecific2

Penunjuk ke nilai khusus sistem yang dicadangkan untuk penggunaan sistem.

[in] SystemSpecific3

Penunjuk ke nilai khusus sistem yang dicadangkan untuk penggunaan sistem.

Nilai kembali

Tidak ada

Keterangan

Setiap driver NDIS dapat memiliki satu atau beberapa fungsi panggilan balik NdisTimerFunction . Setiap panggilan balik NdisTimerFunction tersebut harus dikaitkan dengan objek timer yang dialokasikan driver dan diinisialisasi yang berbeda.

Driver menginisialisasi objek timer yang dialokasikan driver dengan memanggil Fungsi NdisAllocateTimerObject .

Panggilan berikutnya ke fungsi NdisSetTimerObject menyebabkan panggilan balik NdisTimerFunction yang terkait dengan objek timer yang akan dijalankan setelah interval tertentu atau secara berkala.

Untuk membatalkan panggilan ke NdisTimerFunction, panggil fungsi NdisCancelTimerObject . NDIS mungkin masih memanggil NdisTimerFunction jika waktu habis sudah kedaluwarsa sebelum panggilan ke NdisCancelTimerObject.

Jika panggilan balik NdisTimerFunction berbagi sumber daya dengan fungsi driver lain, driver harus menyinkronkan akses ke sumber daya tersebut dengan kunci putar.

Contoh

Untuk menentukan fungsi NdisTimerFunction , Anda harus terlebih dahulu memberikan deklarasi fungsi yang mengidentifikasi jenis fungsi yang Anda tentukan. Windows menyediakan sekumpulan tipe fungsi untuk pengandar. Mendeklarasikan fungsi menggunakan jenis fungsi 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 fungsi NdisTimerFunction yang diberi nama "MyTimerCallback", gunakan jenis NDIS_TIMER_FUNCTION seperti yang ditunjukkan dalam contoh kode ini:

NDIS_TIMER_FUNCTION MyTimerCallback;

Kemudian, terapkan fungsi Anda sebagai berikut:

_Use_decl_annotations_
VOID
 MyTimerCallback(
    PVOID  SystemSpecific1,
    PVOID  FunctionContext,
    PVOID  SystemSpecific2,
    PVOID  SystemSpecific3
    )
  {...}

Jenis fungsi NDIS_TIMER_FUNCTION ditentukan dalam file header Ndis.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 NDIS_TIMER_FUNCTION dalam file header digunakan. Untuk informasi selengkapnya tentang persyaratan untuk deklarasi fungsi, lihat Mendeklarasikan Fungsi dengan Menggunakan Jenis Peran Fungsi untuk Driver NDIS.

Untuk informasi tentang Use_decl_annotations, lihat Perilaku Fungsi Anotasi.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Didukung di NDIS 6.0 dan yang lebih baru.
Target Platform Windows
Header ndis.h (termasuk Ndis.h)
IRQL DISPATCH_LEVEL

Lihat juga

Menginisialisasi Timer NDIS

NDIS_TIMER_CHARACTERISTICS

NdisAllocateTimerObject

NdisCancelTimerObject

NdisSetTimerObject

Timer Layanan

Pengaturan dan Pengosongan Timer