NDIS_PD_FLUSH_QUEUE fungsi panggilan balik (ndis.h)

Platform PacketDirect (PD) memanggil fungsi PDFlushQueue driver miniport berkemampuan PD untuk membersihkan antrean tertentu, memastikan bahwa item apa pun yang belum dalam keadaan lengkap dalam antrean akan segera selesai.

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

 

Sintaks

NDIS_PD_FLUSH_QUEUE NdisPdFlushQueue;

VOID() NdisPdFlushQueue(
  [in, out] NDIS_PD_QUEUE *Queue
)
{...}

Parameter

[in, out] Queue

Antrean untuk menyiram. Untuk informasi selengkapnya, lihat struktur NDIS_PD_QUEUE .

Nilai kembali

Fungsi panggilan balik ini tidak mengembalikan nilai.

Keterangan

Penelepon bertanggung jawab untuk menunggu dan menguras semua permintaan yang diposting sebelumnya sebelum menutup antrean. Pemanggil tidak boleh memposting struktur PD_BUFFER lebih lanjut ke antrean setelah panggilan ini. Kasus penggunaan utama untuk rutinitas ini adalah membersihkan antrean terima --jika tidak ada lalu lintas masuk, buffer yang diposting akan duduk dalam antrean terima tanpa batas waktu, dan ini perlu dikosongkan dengan dibersihkan sebelum antrean dapat ditutup. Masalah yang sama tidak ada untuk mengirimkan antrean dalam praktiknya karena permintaan pengiriman tidak akan tertunda tanpa batas waktu. Namun, penyedia harus mematuhi panggilan flush untuk mengirimkan antrean (ini mungkin tidak beroperasi jika penyedia tahu bahwa permintaan pengiriman yang tertunda akan segera selesai, yang merupakan kasus umum kecuali kontrol aliran L2).

Contoh

Untuk menentukan fungsi PDFlushQueue , 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 PDFlushQueue yang diberi nama "MyPDFlushQueue", gunakan jenis NDIS_PD_FLUSH_QUEUE seperti yang ditunjukkan dalam contoh kode ini:

NDIS_PD_FLUSH_QUEUE MyPDFlushQueue;

Kemudian, terapkan fungsi Anda sebagai berikut:

_Use_decl_annotations_
VOID
 MyPDFlushQueue(
    NDIS_PD_QUEUE*  NdisPDQueue
    )
  {...}

Jenis fungsi NDIS_PD_FLUSH_QUEUE didefinisikan dalam file header Ntddndis.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_PD_FLUSH_QUEUE 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 Windows 10
Server minimum yang didukung Server Windows 2016
Target Platform Windows
Header ndis.h
IRQL <= DISPATCH_LEVEL