Metode IPinCount::P inCount (portcls.h)

Metode ini PinCount meminta driver miniport untuk jumlah pin-nya.

Sintaks

void PinCount(
  [in]      ULONG  PinId,
  [in, out] PULONG FilterNecessary,
  [in, out] PULONG FilterCurrent,
  [in, out] PULONG FilterPossible,
  [in, out] PULONG GlobalCurrent,
  [in, out] PULONG GlobalPossible
);

Parameter

[in] PinId

Menentukan ID pin. Jika filter berisi pabrik pin n , ID pin yang valid berkisar antara 0 hingga n-1.

[in, out] FilterNecessary

Menentukan jumlah minimum pin yang harus dibuat oleh pabrik pin sebelum filter dapat melakukan operasi I/O.

[in, out] FilterCurrent

Menentukan jumlah instans pin saat ini. Angka ini menghitung pin yang telah digunakan pabrik pin pada filter.

[in, out] FilterPossible

Menentukan jumlah maksimum pin yang dapat digunakan pabrik pin pada filter. Atur ke KSINSTANCE_INDETERMINATE jika tidak ada maksimum.

[in, out] GlobalCurrent

Menentukan jumlah pin saat ini yang telah digunakan pabrik pin pada driver.

[in, out] GlobalPossible

Menentukan jumlah maksimum pin yang dapat digunakan pabrik pin pada driver. Atur ke KSINSTANCE_INDETERMINATE jika tidak ada maksimum.

Nilai kembali

Tidak ada

Keterangan

Panggilan PinCount memiliki dua tujuan:

  • Untuk memberi tahu driver miniport jumlah pin saat ini.
  • Untuk memberi driver miniport kesempatan untuk mengubah jumlah pin saat ini.
FilterNecessary, FilterCurrent, FilterPossible, GlobalCurrent, dan GlobalPossible adalah semua parameter IN+OUT yang menunjuk ke nilai dalam deskripsi filter driver miniport. Selama panggilan PinCount , driver miniport dapat memeriksa nilai-nilai ini dan memiliki opsi untuk mengedit nilai agar lebih akurat menunjukkan berapa banyak pin tambahan yang dapat dibuat dari sumber daya yang tersisa.

FilterCurrent dan FilterPossible menentukan nilai per filter untuk pabrik pin yang ditentukan oleh PinId.

GlobalCurrent dan GlobalPossible menentukan nilai total untuk pabrik pin di semua instans filter.

Driver miniport biasanya tidak perlu mengubah parameter FilterNecessary , tetapi disertakan demi kelengkapan.

Selama panggilan IPort::Init , driver port memanggil metode IMiniport::GetDescription driver miniport untuk mendapatkan penunjuk ke deskriptor filter, yang mencakup array deskriptor pin driver miniport (lihat PCPIN_DESCRIPTOR). Setelah itu, driver port mengakses deskriptor pin untuk menanggapi kueri untuk properti pin.

Jika driver miniport mendukung antarmuka IPinCount , driver port memanggil PinCount untuk memberi driver miniport kesempatan untuk memperbarui jumlah pin sebelum membalas permintaan pin-property. Jika driver miniport tidak mendukung IPinCount, driver port hanya menggunakan batas jumlah pin statis dalam array deskriptor pin.

Driver port memanggil PinCount metode ketika menerima salah satu permintaan properti KS berikut:

KSPROPERTY_PIN_CINSTANCES

KSPROPERTY_PIN_GLOBALCINSTANCES

KSPROPERTY_PIN_NECESSARYINSTANCES

PortCls juga memanggil PinCount metode setiap kali aliran baru dibuat.

Driver Miniport tidak boleh secara eksplisit menyebabkan aliran dibuat atau dihancurkan dari dalam PinCount metode . Driver Miniport tidak dibatasi dalam apa yang dapat mereka lakukan selama panggilan ini.

Metode PinCount ini dipanggil di IRQL PASSIVE_LEVEL. Kode untuk metode ini harus berada di memori halaman.

Persyaratan

Persyaratan Nilai
Target Platform Universal
Header portcls.h (termasuk Portcls.h)
IRQL PASSIVE_LEVEL

Lihat juga

IMiniport::GetDescription

IPinCount

IPort::Init

KSPROPERTY_PIN_CINSTANCES

KSPROPERTY_PIN_GLOBALCINSTANCES

KSPROPERTY_PIN_NECESSARYINSTANCES

PCPIN_DESCRIPTOR