IPinCount::P inCount メソッド (portcls.h)

メソッドは PinCount 、ミニポート ドライバーのピン数を照会します。

構文

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
);

パラメーター

[in] PinId

ピン ID を指定します。 フィルターに n 個のピン ファクトリが含まれている場合、有効なピン ID の範囲は 0 から n-1 です。

[in, out] FilterNecessary

フィルターが I/O 操作を実行する前に、ピン ファクトリがインスタンス化する必要があるピンの最小数を指定します。

[in, out] FilterCurrent

ピン インスタンスの現在の数を指定します。 この数は、ピン ファクトリがフィルターで既にインスタンス化したピンをカウントします。

[in, out] FilterPossible

ピン ファクトリがフィルターでインスタンス化できるピンの最大数を指定します。 最大値がない場合は、KSINSTANCE_INDETERMINATEに設定します。

[in, out] GlobalCurrent

ドライバーでピン ファクトリがインスタンス化したピンの現在の数を指定します。

[in, out] GlobalPossible

ドライバーでピン ファクトリがインスタンス化できるピンの最大数を指定します。 最大値がない場合は、KSINSTANCE_INDETERMINATEに設定します。

戻り値

なし

解説

呼び出しには PinCount 、次の 2 つの目的があります。

  • ミニポート ドライバーに現在のピン数を知らせるために。
  • ミニポート ドライバーに現在のピン数を変更する機会を与える。
FilterNecessaryFilterCurrentFilterPossibleGlobalCurrentGlobalPossible はすべて、ミニポート ドライバーのフィルターの説明の値を指す IN+OUT パラメーターです。 PinCount 呼び出し中、ミニポート ドライバーはこれらの値を調べることができ、残りのリソースから作成できる追加ピンの数をより正確に示すために、値を編集するオプションがあります。

FilterCurrentFilterPossible は、 PinId で指定されたピン ファクトリのフィルターごとの値を指定します。

GlobalCurrentGlobalPossible は、フィルターのすべてのインスタンスに対するピン ファクトリの合計値を指定します。

ミニポート ドライバーは通常 、FilterNecessary パラメーターを変更する必要はありませんが、完全性のために含まれています。

IPort::Init 呼び出し中、ポート ドライバーはミニポート ドライバーの IMiniport::GetDescription メソッドを呼び出して、ミニポート ドライバーの pin 記述子配列を含むフィルター記述子へのポインターを取得します (「PCPIN_DESCRIPTOR」を参照)。 その後、ポート ドライバーは、pin プロパティのクエリに応答するピン記述子にアクセスします。

ミニポート ドライバーが IPinCount インターフェイスをサポートしている場合、ポート ドライバーは を呼び出 PinCount して、ミニポート ドライバーに pin プロパティ要求に応答する前にピン数を更新する機会を与えます。 ミニポート ドライバーが IPinCount をサポートしていない場合、ポート ドライバーは、単に pin 記述子配列の静的なピン数の制限を使用します。

ポート ドライバーは、 PinCount 次の KS プロパティ要求のいずれかを受信すると、 メソッドを呼び出します。

KSPROPERTY_PIN_CINSTANCES

KSPROPERTY_PIN_GLOBALCINSTANCES

KSPROPERTY_PIN_NECESSARYINSTANCES

PortCls では、新しいストリームが PinCount 作成されるたびに メソッドも呼び出されます。

ミニポート ドライバーは、 メソッド内からストリームを作成または破棄することを明示的に PinCount 発生させてはいけません。 ミニポート ドライバーは、この呼び出し中に何ができるかに制限されません。

メソッドは PinCount IRQL PASSIVE_LEVELで呼び出されます。 このメソッドのコードは、ページ メモリ内に存在する必要があります。

要件

要件
対象プラットフォーム ユニバーサル
Header portcls.h (Portcls.h を含む)
IRQL PASSIVE_LEVEL

こちらもご覧ください

IMiniport::GetDescription

IPinCount

IPort::Init

KSPROPERTY_PIN_CINSTANCES

KSPROPERTY_PIN_GLOBALCINSTANCES

KSPROPERTY_PIN_NECESSARYINSTANCES

PCPIN_DESCRIPTOR