NDIS_PD_QUERY_QUEUE_DEPTH fungsi panggilan balik (ndis.h)

Platform PacketDirect (PD) memanggil fungsi PDQueryQueueDepth driver miniport berkemampuan PD untuk mengembalikan jumlah struktur PD_BUFFER yang tidak diolah yang diposting ke Antrean.

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

 

Sintaks

NDIS_PD_QUERY_QUEUE_DEPTH NdisPdQueryQueueDepth;

VOID() NdisPdQueryQueueDepth(
  [in]  const NDIS_PD_QUEUE *Queue,
  [out] ULONG64 *Depth
)
{...}

Parameter

[in] Queue

Penunjuk ke antrean kirim atau terima.

[out] Depth

Pada antrean terima, ini adalah jumlah struktur PD_BUFFER yang tersedia untuk menempatkan paket masuk. Misalnya, jika 10 buffer diposting, dan 3 dari 10 telah diambil oleh penyedia untuk menempatkan paket masuk, nilai ini harus 7. Pada antrean transmisi, ini adalah jumlah struktur PD_BUFFER yang belum diambil penyedia dari antrean untuk transmisi.

Nilai kembali

Fungsi panggilan balik ini tidak mengembalikan nilai.

Keterangan

Catatan Untuk mitra IHV: Kemampuan untuk memantau kedalaman antrean sangat penting bagi klien untuk mengakses penumpukan kemacetan dan mengambil tindakan pencegahan. Peningkatan kedalaman antrean untuk antrean transmisi adalah tanda meningkatnya kemacetan pada tautan keluar. Kedalaman antrean yang menurun untuk antrean RX adalah tanda klien tidak dapat memproses paket masuk dengan cukup cepat pada tautan masuk. Klien mungkin perlu memantau status kedalaman antrean dengan sering (Misalnya, mendapatkan kedalaman antrean untuk setiap posting dan operasi, oleh karena itu biaya (dalam siklus CPU) mengkueri kedalaman antrean tidak boleh terlihat dibandingkan dengan biaya satu panggilan PDPostAndDrainBufferList .
 

Contoh

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

NDIS_PD_QUERY_QUEUE_DEPTH MyPDQueryQueueDepth;

Kemudian, terapkan fungsi Anda sebagai berikut:

_Use_decl_annotations_
VOID
 MyPDQueryQueueDepth(
    CONST NDIS_PD_QUEUE*  Queue,
    ULONG64*  Depth
    )
  {...}

Jenis fungsi NDIS_PD_QUERY_QUEUE_DEPTH ditentukan 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_QUERY_QUEUE_DEPTH 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