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 を含む) |
こちらもご覧ください
EvtDmaEnablerSelfManagedIoStart