Share via


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

另請參閱

IoGetDmaAdapter

KSFILTER_DESCRIPTOR

KSMAPPING

KSPIN_DESCRIPTOR_EX