次の方法で共有


WDF_DMA_ENABLER_CONFIG 構造体 (wdfdmaenabler.h)

[KMDF にのみ適用]

WDF_DMA_ENABLER_CONFIG構造体は、DMA イネーブラー オブジェクトの特性を提供します。

構文

typedef struct _WDF_DMA_ENABLER_CONFIG {
  ULONG                                    Size;
  WDF_DMA_PROFILE                          Profile;
  size_t                                   MaximumLength;
  PFN_WDF_DMA_ENABLER_FILL                 EvtDmaEnablerFill;
  PFN_WDF_DMA_ENABLER_FLUSH                EvtDmaEnablerFlush;
  PFN_WDF_DMA_ENABLER_DISABLE              EvtDmaEnablerDisable;
  PFN_WDF_DMA_ENABLER_ENABLE               EvtDmaEnablerEnable;
  PFN_WDF_DMA_ENABLER_SELFMANAGED_IO_START EvtDmaEnablerSelfManagedIoStart;
  PFN_WDF_DMA_ENABLER_SELFMANAGED_IO_STOP  EvtDmaEnablerSelfManagedIoStop;
  ULONG                                    AddressWidthOverride;
  ULONG                                    WdmDmaVersionOverride;
  ULONG                                    Flags;
} WDF_DMA_ENABLER_CONFIG, *PWDF_DMA_ENABLER_CONFIG;

メンバー

Size

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

Profile

DMA イネーブラー オブジェクトに関連付けられるバス マスター DMA 操作の種類を識別する、 WDF_DMA_PROFILE型指定された値。

MaximumLength

デバイスが 1 回の DMA 転送で処理できる既定の最大サイズ (バイト単位)。 (ドライバーは、WdfDmaTransactionSetMaximumLength を呼び出すことによって、個々の DMA トランザクションのこの既定値をオーバーライドできます)。最大 16 個のマップ レジスタをサポートする Microsoft Windows オペレーティング システムのバージョンでドライバーを実行する必要がある場合、MaximumLength は 65,536 未満である必要があります。

EvtDmaEnablerFill

ドライバーの EvtDmaEnablerFill イベント コールバック関数 ( NULL) へのポインター。

EvtDmaEnablerFlush

ドライバーの EvtDmaEnablerFlush イベント コールバック関数 ( NULL) へのポインター。

EvtDmaEnablerDisable

ドライバーの EvtDmaEnablerDisable イベント コールバック関数 ( NULL) へのポインター。

EvtDmaEnablerEnable

ドライバーの EvtDmaEnablerEnable イベント コールバック関数 ( NULL) へのポインター。

EvtDmaEnablerSelfManagedIoStart

ドライバーの EvtDmaEnablerSelfManagedIoStart イベント コールバック関数 ( NULL) へのポインター。

EvtDmaEnablerSelfManagedIoStop

ドライバーの EvtDmaEnablerSelfManagedIoStop イベント コールバック関数へのポインター、または NULL

AddressWidthOverride

[プロファイル] で指定したアドレス幅を受け入れる場合は、0 に設定します。 ドライバーは、このメンバーを 24 から 63 の値に設定することで、 プロファイル アドレスの幅をオーバーライドできます。 ドライバーでシステム モード DMA プロファイルが指定されている場合、 AddressWidthOverride は 0 である必要があります。 ドライバーで 32 ビット DMA プロファイルが指定されている場合、 AddressWidthOverride を 32 より大きくすることはできません。 AddressWidthOverride メンバーは、バージョン 1.11 以降のバージョンの KMDF で使用できます。 詳細については、「解説」を参照 してください

WdmDmaVersionOverride

既定の DMA バージョンを受け入れる場合は、0 に設定します。 DMA バージョン 3 を要求するには、 を 3 に設定します。 WdmDmaVersionOverride メンバーは、バージョン 1.11 以降のバージョンの KMDF で使用できます。 DMA バージョン 3 は、Windows 8 以降で使用できます。

Flags

WDF_DMA_ENABLER_CONFIG_FLAGS列挙体の 1 つ以上の値のビットごとの OR。 Flags メンバーは、バージョン 1.11 以降のバージョンの KMDF で使用できます。

注釈

WDF_DMA_ENABLER_CONFIG構造体は、WdfDmaEnablerCreate メソッドの入力パラメーターとして使用されます。

ドライバーは 、WDF_DMA_ENABLER_CONFIG 構造体を初期化する WDF_DMA_ENABLER_CONFIG_INIT を呼び出す必要があります。

Windows 8 以降では、ドライバーが AddressWidthOverride に 0 以外の値を提供すると、フレームワークは DMA バージョン 3 を要求し、AddressWidthOverride 値を HAL に渡します。

Windows 7 および Windows Vista では、ドライバーが AddressWidthOverride に 0 以外の値を提供すると、フレームワークは 32 ビットまたは 24 ビット DMA を使用します。 たとえば、ドライバーが 64 ビット プロファイルを指定し、 AddressWidthOverride の 32 を提供する場合、フレームワークは 32 ビット DMA を使用します。 ドライバーが 32 ビット プロファイルを指定し、 AddressWidthOverride の 24 を提供する場合、フレームワークは 24 ビット DMA を使用します。

要件

要件
最小 KMDF バージョン 1.0
Header wdfdmaenabler.h (Wdf.h を含む)

こちらもご覧ください

EvtDmaEnablerDisable

EvtDmaEnablerEnable

EvtDmaEnablerFill

EvtDmaEnablerFlush

EvtDmaEnablerSelfManagedIoStart

EvtDmaEnablerSelfManagedIoStop

WDF_DMA_ENABLER_CONFIG_INIT

WDF_DMA_PROFILE

WdfDmaEnablerCreate

WdfDmaTransactionSetMaximumLength