KsDeviceRegisterAdapterObject 函式 (ks.h)
KsDeviceRegisterAdapterObject 函式向 AVStream 註冊 DMA 配接器物件,以在指定的裝置上執行散佈/收集 DMA。 針對 Win64 編譯的所有驅動程式都應該改用 IKsDeviceFunctions::RegisterAdapterObjectEx 。
語法
void KsDeviceRegisterAdapterObject(
[in] PKSDEVICE Device,
[in] PADAPTER_OBJECT AdapterObject,
[in] ULONG MaxMappingsByteCount,
[in] ULONG MappingTableStride
);
參數
[in] Device
KSDEVICE 結構的指標,代表要為其註冊配接器物件的AVStream裝置。
[in] AdapterObject
IoGetDmaAdapter 所傳回之DMA_ADAPTER結構的指標,表示 DMA 控制器。
[in] MaxMappingsByteCount
此參數會指定裝置可以處理單一對應的最大位元組數目。 允許AVStream自動將大型連續物理記憶體區塊分割成多個散佈/收集元素,這些裝置會對 DMA 傳輸中的個別對應施加大小限制。 不保證分頁界限發生中斷。
[in] MappingTableStride
此參數會指定對應數據表中每個專案需要多少個字節。 這至少必須是 (KSMAPPING) 的大小,而且可以視需要大到大。
迷你驅動程式可以使用額外的空間作為內容資訊。
傳回值
無
備註
呼叫 KsDeviceRegisterAdapterObject 的迷你驅動程式負責先前透過 IoGetDmaAdapter 取得配接器物件。
另請注意,如果 minidriver 指定裝置上任何針腳的KSPIN_FLAG_GENERATE_MAPPINGS旗標,minidriver 必須先呼叫 KsDeviceRegisterAdapterObject ,再處理任何數據。 如需此旗標的詳細資訊,請參閱 KSPIN_DESCRIPTOR_EX的參考頁面。 另請參閱 AVStream DMA 服務。
如果您將 MaxMappingByteCount 設定為長度為一個實體頁面,則不保證對應位於單一實體頁面上。 此外,如上述成員描述中所述,設定 MaxMappingsByteCount 不保證分頁界限上會發生中斷。 如果您需要分頁界限的分隔符,請考慮不要指定對應大小的限制;相反地,請手動將傳回的散佈圖/收集對應分成頁面對齊的區塊。
另請參閱 在 64 位 AVStream 驅動程式中支援 DMA。
規格需求
需求 | 值 |
---|---|
目標平台 | Universal |
標頭 | ks.h (包含 Ks.h) |
程式庫 | Ks.lib |
IRQL | PASSIVE_LEVEL |