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を返します。 それ以外の場合、メソッドは次のいずれかの値を返す可能性があります。
リターン コード | 説明 |
---|---|
|
ドライバーは、現在のオペレーティング システムでサポートされていない DMA 構成を要求しました。 |
|
ドライバーが ProfileConfig パラメーターに NULL を指定しました。 |
|
ProfileConfig パラメーターが指す構造体の Size メンバーは、WDF_DMA_SYSTEM_PROFILE_CONFIG構造体のサイズと等しくありません。 |
|
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) |