次の方法で共有


WdfDmaEnablerConfigureSystemProfile 関数 (wdfdmaenabler.h)

[KMDF にのみ適用]

WdfDmaEnablerConfigureSystemProfile メソッドは、システム モード DMA イネーブラーのハードウェア固有の設定を構成し、リソースの初期化を完了します。

構文

NTSTATUS WdfDmaEnablerConfigureSystemProfile(
  [in] WDFDMAENABLER                  DmaEnabler,
  [in] PWDF_DMA_SYSTEM_PROFILE_CONFIG ProfileConfig,
  [in] WDF_DMA_DIRECTION              ConfigDirection
);

パラメーター

[in] DmaEnabler

DMA イネーブラー オブジェクトへのハンドル。

[in] ProfileConfig

WDF_DMA_SYSTEM_PROFILE_CONFIG構造体へのポインター。 ドライバーは 、WDF_DMA_SYSTEM_PROFILE_CONFIG_INITを呼び出してこの構造体を初期化する必要があります。

[in] ConfigDirection

DMA 転送操作の方向を指定する WDF_DMA_DIRECTION型指定された値。 このイネーブラーの WDF_DMA_PROFILE 値が WdfDmaProfileSystemDuplex でない場合、フレームワークはこのパラメーターを無視します。

戻り値

操作が成功した場合、WdfDmaEnablerConfigureSystemProfile はSTATUS_SUCCESSを返します。 それ以外の場合、メソッドは次のいずれかの値を返す可能性があります。

リターン コード 説明
STATUS_NOT_SUPPORTED
ドライバーは、現在のオペレーティング システムでサポートされていない DMA 構成を要求しました。
STATUS_INVALID_PARAMETER
ドライバーが ProfileConfig パラメーターに NULL を指定しました。
STATUS_INFO_LENGTH_MISMATCH
ProfileConfig パラメーターが指す構造体の Size メンバーは、WDF_DMA_SYSTEM_PROFILE_CONFIG構造体のサイズと等しくありません。
STATUS_INVALID_PARAMETER
ProfileConfig パラメーターが指す構造体の DmaDescriptor メンバーが NULL であるか、ConfigDirection パラメーターに無効な値が含まれています。

注釈

WdfDmaEnablerConfigureSystemProfile を呼び出す前に、ドライバーは WdfDmaEnablerCreate を呼び出してイネーブラー オブジェクトを作成する必要があります。

ドライバーは通常、EvtDevicePrepareHardware コールバック関数から WdfDmaEnablerConfigureSystemProfile を呼び出します。

ドライバーが WdfDmaEnablerCreate を呼び出したときに二重プロファイルを指定した場合、WdfDmaEnablerConfigureSystemProfile メソッドの ConfigDirection パラメーターの値は、読み取り操作のDMA_ADAPTER構造を取得するには WdfDmaDirectionReadFromDevice、書き込み操作のDMA_ADAPTER構造体を取得する WdfDmaDirectionWriteToDevice である必要があります。

DMA イネーブラーが双方向イネーブラーの場合、ドライバーは特定の方向を初期化してから使用する必要があります。

ドライバーで二重プロファイルが指定されていない場合、ドライバーは WdfDmaDirectionReadFromDevice または WdfDmaDirectionWriteToDevice を指定できます。

次のコード例は、ドライバーの EvtDevicePrepareHardware コールバック関数のコード例です。 この例では、 WDF_DMA_SYSTEM_PROFILE_CONFIG 構造体を初期化し、 WdfDmaEnablerConfigureSystemProfile を呼び出します。


WDF_DMA_SYSTEM_PROFILE_CONFIG systemDmaConfig;  
PHYSICAL_ADDRESS pa;  
 
pa.QuadPart = 0;  
  
WDF_DMA_SYSTEM_PROFILE_CONFIG_INIT(&systemDmaConfig,   
                                   pa,  
                                   Width8Bits,  
                                   partial);  
  
systemDmaConfig.DemandMode = true;  
 
ntStatus = WdfDmaEnablerConfigureSystemProfile(fdoExtension->DmaEnabler,   
                                               &systemDmaConfig,   
                                               WdfDmaDirectionReadFromDevice);  

要件

要件
サポートされている最小のクライアント Windows 8
対象プラットフォーム ユニバーサル
最小 KMDF バージョン 1.11
Header wdfdmaenabler.h (Wdf.h を含む)
Library Wdf01000.sys (「Framework ライブラリのバージョン管理」を参照)。
IRQL PASSIVE_LEVEL
DDI コンプライアンス規則 DriverCreate(kmdf)

こちらもご覧ください

WDF_DMA_ENABLER_CONFIG

WDF_DMA_ENABLER_CONFIG_INIT

WDF_DMA_SYSTEM_PROFILE_CONFIG_INIT

WdfDmaEnablerCreate