共用方式為


篩選特定配置器

需要配置器供上線記憶體或其他裝置相依儲存方法使用的篩選,可藉由支援配置器 屬性方法來提供特定的配置器。 如需詳細資訊,請參閱 KSPROPERTY_STREAM_ALLOCATOR

篩選會接收類型的IRP_MJ_CREATE,KSCREATE_REQUEST_ALLOCATOR指定配置器的框架選項。 迷你驅動程式的配置器建立常式會呼叫 KsValidateAllocatorCreateRequest 來驗證建立要求。 如果呼叫成功,這個常式會傳回相關 KSALLOCATOR_FRAMING 結構的指標。

如果篩選準則無法滿足框架需求,它會傳回失敗碼以回應 IRP。 否則,篩選準則會將指標附加至檔案物件的 FsCoNtext 成員,並服務產生的配置器要求。

如果篩選準則就地修改傳遞至串流介面的緩衝區,則使用者模式用戶端會在相關的KSALLOCATOR_FRAMING結構上設定 KSALLOCATOR_REQUIREMENTF_INPLACE_MODIFIER 旗標。

配置器有兩個介面可供配置器使用。 首先,配置器必須支援以 IRP 為基礎的 KSMETHODSETID_StreamAllocator。 使用此機制的配置器限制為組態架構數目上限。 超過此限制之配置畫面的要求將會標示為擱置中。

其次,如果組態集區類型可在DISPATCH_LEVEL服務,迷你驅動程式就可以支援函式資料表存取。 提供函式資料表存取是選擇性的。 藉由支援 KSPROPSETID_StreamAllocator中的屬性來執行此動作。

DISPATCH_LEVEL介面的運作方式如下:

當配置要求提交至配置器時,配置器會在有配置器時傳回框架的指標。 如果沒有,它會立即傳回 Null

當免費要求提交至配置器時,配置器會向資料流程配置器發出「免費畫面格」事件,通知用戶端有可用的免費畫面。 此外,如果有配置要求 IRP 等待完成,配置器必須排程背景工作專案 (目前的 IRQL 未PASSIVE_LEVEL) ,並使用免費框架完成要求。

DISPATCH_LEVEL介面和 IRP 型介面都可能爭用免費畫面。 KS 會使用取消微調鎖定來同步處理此佇列。