SERCX2_SYSTEM_DMA_TRANSMIT_CONFIG構造体 (sercx.h)
SERCX2_SYSTEM_DMA_TRANSMIT_CONFIG 構造体には、シリアル フレームワーク拡張機能 (SerCx2) のバージョン 2 が新しいシステム DMA 送信オブジェクトの構成に使用する情報が含まれています。
構文
typedef struct _SERCX2_SYSTEM_DMA_TRANSMIT_CONFIG {
ULONG Size;
size_t MaximumTransferLength;
size_t MinimumTransactionLength;
ULONG DmaAlignment;
ULONG MaximumScatterGatherFragments;
DMA_WIDTH DmaWidth;
PHYSICAL_ADDRESS DeviceAddress;
PCM_PARTIAL_RESOURCE_DESCRIPTOR DmaDescriptor;
ULONG MinimumTransferUnitOverride;
BOOLEAN Exclusive;
PFN_SERCX2_SYSTEM_DMA_TRANSMIT_INITIALIZE_TRANSACTION EvtSerCx2SystemDmaTransmitInitializeTransaction;
PFN_SERCX2_SYSTEM_DMA_TRANSMIT_CLEANUP_TRANSACTION EvtSerCx2SystemDmaTransmitCleanupTransaction;
PFN_SERCX2_SYSTEM_DMA_TRANSMIT_CONFIGURE_DMA_CHANNEL EvtSerCx2SystemDmaTransmitConfigureDmaChannel;
PFN_SERCX2_SYSTEM_DMA_TRANSMIT_DRAIN_FIFO EvtSerCx2SystemDmaTransmitDrainFifo;
PFN_SERCX2_SYSTEM_DMA_TRANSMIT_CANCEL_DRAIN_FIFO EvtSerCx2SystemDmaTransmitCancelDrainFifo;
PFN_SERCX2_SYSTEM_DMA_TRANSMIT_PURGE_FIFO EvtSerCx2SystemDmaTransmitPurgeFifo;
} SERCX2_SYSTEM_DMA_TRANSMIT_CONFIG, *PSERCX2_SYSTEM_DMA_TRANSMIT_CONFIG;
メンバーズ
Size
この構造体のサイズ (バイト単位)。 SerCx2SystemDmaTransmitCreate メソッドは、このメンバーを使用して、呼び出し元が使用している構造体のバージョンを決定します。 この構造体のサイズは、Sercx.h ヘッダー ファイルの将来のバージョンで変更される可能性があります。
MaximumTransferLength
シリアル コントローラーが 1 つのシステム DMA 転送で処理できる既定の最大サイズ (バイト単位)。 書き込み (IRP_MJ_WRITE) 要求のバッファーのサイズがこの最大サイズを超える場合、SerCx2 は複数の DMA 転送を使用して要求を処理し、各転送を最大長に制限します。
MinimumTransactionLength
システム DMA 送信トランザクションの最小長 (バイト単位)。 書き込み要求のバッファーの長さが、この最小長より小さい場合、SerCx2 はトランザクションにプログラミングされた I/O (PIO) を使用します。
DmaAlignment
DMA アラインメント要件。 システム DMA 送信トランザクション内の転送の開始アドレスをメモリ内でどのようにアラインする必要するかを指定します。 このメンバーを Wdm.h ヘッダー ファイル内の適切なFILE_XXX_ALIGNMENT 定数に設定します。 たとえば、FILE_WORD_ALIGNMENTは、開始 DMA アドレスをメモリ内の 2 バイト境界に配置する必要があることを示FILE_LONG_ALIGNMENT、アドレスを 4 バイト境界にアラインする必要があることを示します。 SerCx2 はFILE_BYTE_ALIGNMENTをサポートしていません。 システム DMA アダプターの最小転送単位 (MTU) は、必要なアラインメント以上である必要があります。 たとえば、MTU が 4 バイトの場合、DmaAlignment は少なくともFILE_LONG_ALIGNMENTする必要があります。
MaximumScatterGatherFragments
システム DMA 送信トランザクションの DMA 転送の分散/収集リストで指定できるバッファー フラグメントの最大数。
DmaWidth
DeviceAddressで指定されたアドレスにあるデータ レジスタの幅。 使用できる値は 、width8Bits、Width16Bits、Width32Bits、および Width64Bitsです。
DeviceAddress
DMA コントローラーが転送するデータの転送先となる変換されたデバイス アドレス。 詳細については、WDF_DMA_SYSTEM_PROFILE_CONFIGの DeviceAddress メンバーの説明を参照してください。
DmaDescriptor
送信トランザクションに使用するシステム DMA リソースを記述する CM_PARTIAL_RESOURCE_DESCRIPTOR 構造体へのポインター。 シリアル コントローラー ドライバーは、シリアル コントローラーを起動する EvtDevicePrepareHardware コールバックで受信した未加工リソースリストからこの構造体を取得します。
MinimumTransferUnitOverride
既定の最小転送単位の代わりに使用するオーバーライド値。 散布図/収集リスト内の要素によって指定されるバイト数は、最小転送単位の整数倍数である必要があります。 値が 0 の場合は、既定の最小転送単位を使用する必要があることを示します。 デフォルト最小転送単位の詳細については、DMA_ADAPTER_INFO_V1を参照してください。
Exclusive
システム DMA 送信トランザクションを使用して書き込み (IRP_MJ_WRITE) 要求を処理するかどうかを指定します。 書き込み要求でシステム DMA 送信トランザクションのみを使用する必要があることを示すには、TRUE を
システム DMA 送信トランザクションの最小転送単位が 1 バイトで、トランザクションの最小長が 1 バイトで、トランザクションの書き込みバッファーがメモリ内の任意のバイト境界で開始できる場合にのみ、このメンバーを TRUE に設定します。
排他 が TRUE
EvtSerCx2SystemDmaTransmitInitializeTransaction
EvtSerCx2SystemDmaTransmitInitializeTransaction イベント コールバック関数
EvtSerCx2SystemDmaTransmitCleanupTransaction
EvtSerCx2SystemDmaTransmitCleanupTransaction イベント コールバック関数
EvtSerCx2SystemDmaTransmitConfigureDmaChannel
EvtSerCx2SystemDmaTransmitConfigureDmaChannel イベント コールバック関数
EvtSerCx2SystemDmaTransmitDrainFifo
EvtSerCx2SystemDmaTransmitDrainFifo イベント コールバック関数
EvtSerCx2SystemDmaTransmitCancelDrainFifo
EvtSerCx2SystemDmaTransmitCancelDrainFifo イベント コールバック関数
EvtSerCx2SystemDmaTransmitPurgeFifo
EvtSerCx2SystemDmaTransmitPurgeFifo イベント コールバック関数
備考
SerCx2SystemDmaTransmitCreate メソッドは、SERCX2_SYSTEM_DMA_TRANSMIT_CONFIG 構造体へのポインターを入力パラメーターとして受け取ります。 SerCx2SystemDmaTransmitCreate
必要条件
要件 | 価値 |
---|---|
サポートされる最小クライアント | Windows 8.1 以降でサポートされています。 |
ヘッダー | sercx.h |
関連項目
EvtSerCx2SystemDmaTransmitCancelDrainFifo の
EvtSerCx2SystemDmaTransmitCleanupTransaction の
EvtSerCx2SystemDmaTransmitConfigureDmaChannel の
EvtSerCx2SystemDmaTransmitDrainFifo の
EvtSerCx2SystemDmaTransmitInitializeTransaction の
EvtSerCx2SystemDmaTransmitPurgeFifo の