NDIS_PD_ALLOCATE_COUNTER fungsi panggilan balik (ndis.h)

Platform PacketDirect (PD) memanggil fungsi NdisPDAllocateCounter driver miniport berkemampuan PD untuk mengalokasikan objek penghitung. Ada tiga jenis penghitung:

  • Penghitung antrean terima digunakan untuk melacak aktivitas antrean penerima.
  • Penghitung antrean transmisi digunakan untuk melacak aktivitas antrean transmisi.
  • Penghitung filter digunakan untuk melacak aktivitas pencocokan filter.
Catatan Anda harus mendeklarasikan fungsi dengan menggunakan jenis NDIS_PD_ALLOCATE_COUNTER . Untuk informasi selengkapnya, lihat bagian Contoh berikut ini.
 

Sintaks

NDIS_PD_ALLOCATE_COUNTER NdisPdAllocateCounter;

NTSTATUS() NdisPdAllocateCounter(
  [in]  NDIS_PD_PROVIDER_HANDLE ProviderHandle,
  [in]  const NDIS_PD_COUNTER_PARAMETERS *CounterParameters,
  [out] NDIS_PD_COUNTER_HANDLE *CounterHandle
)
{...}

Parameter

[in] ProviderHandle

Handel penyedia yang mengidentifikasi objek penyedia driver miniport berkemampukan PD.

[in] CounterParameters

Struktur NDIS_PD_COUNTER_PARAMETERS yang menentukan informasi seperti jenis penghitung.

[out] CounterHandle

Penunjuk ke variabel handel penghitung yang dialokasikan driver. Jika alokasi penghitung berhasil, driver miniport mengembalikan handel ke penghitung yang baru dialokasikan dalam variabel ini.

Mengembalikan nilai

NdisPDAllocateCounter dapat mengembalikan salah satu nilai status berikut:

Menampilkan kode Deskripsi
STATUS_SUCCESS
Driver miniport berhasil mengalokasikan penghitung dan mengembalikan handel di parameter CounterHandle .
STATUS_INSUFFICIENT_RESOURCES
Alokasi gagal karena sumber daya yang tidak mencukuum.

Keterangan

Objek penghitung yang sama dapat dikaitkan dengan beberapa antrean atau objek filter dengan jenis yang sama dengan penghitung. Misalnya, jika ada 5 antrean penerima (RQ1 hingga RQ5) dan 2 penghitung penerima (RC1 dan RC2), menerima penghitung RC1 dapat dikaitkan dengan antrean penerima RQ1, RQ2, RQ3, dan menerima penghitung RC2 dapat dikaitkan dengan antrean penerima RQ4 dan RQ5.

Contoh

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

NDIS_PD_ALLOCATE_COUNTER MyPDAllocateCounter;

Kemudian, terapkan fungsi Anda sebagai berikut:

_Use_decl_annotations_
NTSTATUS
 MyPDAllocateCounter(
    NDIS_PD_PROVIDER_HANDLE  ProviderHandle,
    CONST NDIS_PD_COUNTER_PARAMETERS*  CounterParameters,
    NDIS_PD_COUNTER_HANDLE*  CounterHandle
    )
  {...}

Jenis fungsi NDIS_PD_ALLOCATE_COUNTER 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_ALLOCATE_COUNTER 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 PASSIVE_LEVEL

Lihat juga

NDIS_PD_COUNTER_PARAMETERS

NdisPDFreeCounter