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 を含む) |