(portcls.h) 的 IPinCount::P inCount 方法
方法 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
指定針腳標識碼。 如果篩選包含 n 個針腳處理站,有效的針腳標識碼範圍從 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
有兩個用途:
- 若要讓迷你埠驅動程式知道目前的針腳計數。
- 若要讓迷你埠驅動程序有機會改變目前的針腳計數。
FilterCurrent 和 FilterPossible 會 指定 PinId 所指定之針腳處理站的每個篩選值。
GlobalCurrent 和 GlobalPossible 會針對篩選條件的所有實例指定針腳處理站的總值。
迷你埠驅動程式通常不需要變更 FilterNecessary 參數,但為了完整性而包含它。
在 IPort::Init 呼叫期間,埠驅動程式會呼叫 miniport 驅動程式的 IMiniport::GetDescription 方法來取得篩選描述元的指標,其中包含迷你埠驅動程式的 pin-descriptor 陣組 (請參閱 PCPIN_DESCRIPTOR) 。 之後,埠驅動程式會存取針腳描述項,以響應針腳屬性的查詢。
如果迷你埠驅動程序支援 IPinCount 介面,埠驅動程式會呼叫 PinCount
,讓迷你埠驅動程式有機會在回復 Pin 屬性要求之前更新針腳計數。 如果迷你埠驅動程式不支援 IPinCount,埠驅動程式只會使用針腳描述元陣列中的靜態針腳計數限制。
連接埠驅動程式會在收到下列其中一個 KS 屬性要求時呼叫 PinCount
方法:
KSPROPERTY_PIN_GLOBALCINSTANCES
KSPROPERTY_PIN_NECESSARYINSTANCES
PortCls 也會在每次建立新的數據流時呼叫 PinCount
方法。
迷你埠驅動程式不得明確造成從 方法內 PinCount
建立或終結數據流。 迷你埠驅動程式不會在此呼叫期間限制它們所能執行的動作。
方法 PinCount
會在 IRQL PASSIVE_LEVEL呼叫。 這個方法的程式代碼必須位於分頁記憶體中。
規格需求
需求 | 值 |
---|---|
目標平台 | Universal |
標頭 | portcls.h (包含 Portcls.h) |
IRQL | PASSIVE_LEVEL |
另請參閱
KSPROPERTY_PIN_GLOBALCINSTANCES