SERCX2_SYSTEM_DMA_RECEIVE_CONFIG構造体 (sercx.h)
SERCX2_SYSTEM_DMA_RECEIVE_CONFIG 構造体には、シリアル フレームワーク拡張機能 (SerCx2) のバージョン 2 が新しいシステム DMA 受信オブジェクトの構成に使用する情報が含まれています。
構文
typedef struct _SERCX2_SYSTEM_DMA_RECEIVE_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_RECEIVE_INITIALIZE_TRANSACTION EvtSerCx2SystemDmaReceiveInitializeTransaction;
PFN_SERCX2_SYSTEM_DMA_RECEIVE_CLEANUP_TRANSACTION EvtSerCx2SystemDmaReceiveCleanupTransaction;
PFN_SERCX2_SYSTEM_DMA_RECEIVE_CONFIGURE_DMA_CHANNEL EvtSerCx2SystemDmaReceiveConfigureDmaChannel;
PFN_SERCX2_SYSTEM_DMA_RECEIVE_ENABLE_NEW_DATA_NOTIFICATION EvtSerCx2SystemDmaReceiveEnableNewDataNotification;
PFN_SERCX2_SYSTEM_DMA_RECEIVE_CANCEL_NEW_DATA_NOTIFICATION EvtSerCx2SystemDmaReceiveCancelNewDataNotification;
} SERCX2_SYSTEM_DMA_RECEIVE_CONFIG, *PSERCX2_SYSTEM_DMA_RECEIVE_CONFIG;
メンバーズ
Size
この構造体のサイズ (バイト単位)。 SerCx2SystemDmaReceiveCreate メソッドは、このメンバーを使用して、呼び出し元が使用している構造体のバージョンを決定します。 この構造体のサイズは、Sercx.h ヘッダー ファイルの将来のバージョンで変更される可能性があります。
MaximumTransferLength
シリアル コントローラーが 1 つのシステム DMA 転送で処理できる既定の最大サイズ (バイト単位)。 読み取り (IRP_MJ_READ) 要求内のバッファーのサイズがこの最大サイズを超える場合、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の MinimumTransferUnit メンバーの説明を参照してください。
Exclusive
システム DMA 受信トランザクションを排他的に使用して書き込み (IRP_MJ_READ) 要求を処理するかどうかを指定します。 読み取り要求でシステム DMA 受信トランザクションのみを使用する必要があることを示す TRUE を
システム DMA 受信トランザクションの最小転送単位が 1 バイトで、トランザクションの最小長が 1 バイトで、トランザクションの読み取りバッファーがメモリ内の任意のバイト境界で開始できる場合にのみ、このメンバーを TRUE に設定します。
排他
このメンバーの値に関係なく、PIO 受信トランザクションは、シリアル コントローラーが D0 デバイスの電源状態を終了して低電力状態に入る前に、未読データを受信 FIFO に保存するために使用されます。
EvtSerCx2SystemDmaReceiveInitializeTransaction
EvtSerCx2SystemDmaReceiveInitializeTransaction イベント コールバック関数
EvtSerCx2SystemDmaReceiveCleanupTransaction
EvtSerCx2SystemDmaReceiveCleanupTransaction イベント コールバック関数
EvtSerCx2SystemDmaReceiveConfigureDmaChannel
EvtSerCx2SystemDmaReceiveConfigureDmaChannel イベント コールバック関数
EvtSerCx2SystemDmaReceiveEnableNewDataNotification
EvtSerCx2SystemDmaReceiveEnableNewDataNotification イベント コールバック関数
EvtSerCx2SystemDmaReceiveCancelNewDataNotification
EvtSerCx2SystemDmaReceiveCancelNewDataNotification イベント コールバック関数
備考
SerCx2SystemDmaReceiveCreate メソッドは、SERCX2_SYSTEM_DMA_RECEIVE_CONFIG 構造体へのポインターを入力パラメーターとして受け取ります。 SerCx2SystemDmaReceiveCreate
必要条件
要件 | 価値 |
---|---|
サポートされる最小クライアント | Windows 8.1 以降でサポートされています。 |
ヘッダー | sercx.h |
関連項目
CM_PARTIAL_RESOURCE_DESCRIPTOR
EvtDevicePrepareHardware の
EvtSerCx2SystemDmaReceiveCancelNewDataNotification の
EvtSerCx2SystemDmaReceiveCleanupTransaction の
EvtSerCx2SystemDmaReceiveConfigureDmaChannel の
EvtSerCx2SystemDmaReceiveEnableNewDataNotification の
EvtSerCx2SystemDmaReceiveInitializeTransaction の
SERCX2_SYSTEM_DMA_RECEIVE_CONFIG_INIT
SERCX2_SYSTEM_DMA_RECEIVE_CONFIG_INIT_NEW_DATA_NOTIFICATION
SerCx2SystemDmaReceiveCreate の