次の方法で共有


共通バッファーの使用

DMA デバイスのドライバーでは、デバイスとドライバーの両方がアクセスできるバッファーの割り当てが必要になることがあります。たとえば、デバイスはバイト数などの転送情報をこのバッファー領域に書き込み、ドライバーはそれを読み取って転送されたバイト数を確認できます。このようなバッファー領域は "共通バッファー" と呼ばれます。**

共通バッファーを割り当てるために、ドライバーの EvtDriverDeviceAdd コールバック関数は次の処理を行います。

ドライバーが WdfDmaEnablerCreate を呼び出す前に WdfDeviceSetAlignmentRequirement を呼び出すと、WdfDmaEnablerCreate が作成するバッファーは、ドライバーが WdfDeviceSetAlignmentRequirement に指定したメモリ アドレス境界に配置されます。それ以外の場合、共通バッファーはワード アドレス境界に配置されます。また、ドライバーは WdfCommonBufferCreateWithConfig を呼び出して、1 つのバッファーの配置を指定することもできます。

ドライバーが割り当てた共通バッファーの長さを取得するために、ドライバーは WdfCommonBufferGetLength を呼び出すことができます。

ドライバーは共通バッファーの使用を完了すると、WdfObjectDelete を呼び出します。