次の方法で共有


WDF_DMA_SYSTEM_PROFILE_CONFIG構造体 (wdfdmaenabler.h)

[KMDF にのみ適用]

WDF_DMA_SYSTEM_PROFILE_CONFIG構造では、システム モード DMA イネーブラーに関連するハードウェア固有の設定について説明します。

構文

typedef struct _WDF_DMA_SYSTEM_PROFILE_CONFIG {
  ULONG                           Size;
  BOOLEAN                         DemandMode;
  BOOLEAN                         LoopedTransfer;
  DMA_WIDTH                       DmaWidth;
  PHYSICAL_ADDRESS                DeviceAddress;
  PCM_PARTIAL_RESOURCE_DESCRIPTOR DmaDescriptor;
} WDF_DMA_SYSTEM_PROFILE_CONFIG, *PWDF_DMA_SYSTEM_PROFILE_CONFIG;

メンバー

Size

この構造体のバイト単位のサイズ。

DemandMode

転送がデバイスの DMA によって制御されることを指定します
この構造体の DmaDescriptor メンバーで指定された要求行。 詳細については、「解説」を参照してください。

LoopedTransfer

長さがバッファーのサイズより大きい場合は、DMA アダプターが指定した転送をループ処理する必要があることを指定します。

DmaWidth

DeviceAddress で指定されたレジスタの幅。 使用できる値は、Width8Bits、Width16Bits、Width32Bits、Width64Bits です。

DeviceAddress

DMA コントローラーの転送元または転送元の変換されたアドレス。 ドライバーは 、WdfDmaTransactionSetDeviceAddressOffset を呼び出すことによって、各トランザクションでこのベース アドレスからのオフセットを指定できます。

DmaDescriptor

EvtDevicePrepareHardware 中にデバイスが割り当てられた DMA チャネルの翻訳されたリソース記述子。 これにより、アダプターの DMA 要求行が提供されます。

注釈

ドライバーは、システム プロファイル DMA イネーブラーを作成した後、 WdfDmaEnablerConfigureSystemProfile にこの構造を提供します。

通常、ドライバーは DemandMode を TRUE に設定します。 ドライバーの EvtProgramDma コールバック関数は、DMA 要求行をアサートし、転送を開始するようにデバイスをプログラムします。 この場合、 EvtProgramDma がまだ実行中に転送が開始される可能性があります。

ドライバーは、ドライバーの EvtProgramDma コールバック関数が実行を開始する前に、デバイスの DMA 要求行がアサートされていないことを確認する必要があります。 それ以外の場合は、フレームワークが EvtProgramDma を呼び出す前に DMA 転送を開始できます。

DemandMode が FALSE に設定されている場合、フレームワークがドライバーの EvtProgramDma 関数を呼び出す前に、DMA 転送が開始される可能性があります。

要件

要件
サポートされている最小のクライアント Windows 8
最小 KMDF バージョン 1.11
Header wdfdmaenabler.h (Wdf.h を含む)

こちらもご覧ください

WDF_DMA_SYSTEM_PROFILE_CONFIG_INIT

WdfDmaEnablerConfigureSystemProfile