SERCX2_CUSTOM_TRANSMIT_CONFIG structure (sercx.h)

The SERCX2_CUSTOM_TRANSMIT_CONFIG structure contains information that version 2 of the serial framework extension (SerCx2) uses to configure a new custom-transmit object.

Syntax

typedef struct _SERCX2_CUSTOM_TRANSMIT_CONFIG {
  ULONG   Size;
  ULONG   Alignment;
  ULONG   MinimumTransactionLength;
  ULONG   MaximumTransactionLength;
  ULONG   MinimumTransferUnit;
  BOOLEAN Exclusive;
} SERCX2_CUSTOM_TRANSMIT_CONFIG, *PSERCX2_CUSTOM_TRANSMIT_CONFIG;

Members

Size

The size, in bytes, of this structure. The SerCx2CustomTransmitCreate method uses this member to determine which version of the structure the caller is using. The size of this structure might change in future versions of the Sercx.h header file.

Alignment

Data alignment requirement. Specifies how the starting address of a transfer in a custom-transmit transaction must be aligned in memory. Set this member to the appropriate FILE_XXX_ALIGNMENT constant in the Wdm.h header file. For example, FILE_WORD_ALIGNMENT indicates that the starting address must be aligned to two-byte boundary in memory, FILE_LONG_ALIGNMENT indicates that the address must be aligned to a four-byte boundary, and so on.

MinimumTransactionLength

The minimum length, in bytes, of a data transfer in a custom-transmit transaction. If the length of the buffer in a write (IRP_MJ_WRITE) request is less than this minimum length, SerCx2 uses programmed I/O (PIO) for the transaction.

MaximumTransactionLength

The maximum length, in bytes, of a data transfer in a custom-transmit transaction. If the size of the buffer in the write request is larger than this maximum length, SerCx2 uses multiple custom-transmit transactions to handle the request, and limits each transaction to the maximum length.

MinimumTransferUnit

The minimum transfer unit. The number of bytes to transfer in a custom-transmit transaction must be an integer multiple of the minimum transfer unit. To indicate that the default minimum transfer unit should be used, set this member to zero. For more information about the default minimum transfer unit, see DMA_ADAPTER_INFO_V1.

Exclusive

Whether to use custom-transmit transactions exclusively to handle write (IRP_MJ_WRITE) requests. Set to TRUE to indicate that write requests should use custom-transmit transactions exclusively. Set to FALSE to indicate that write requests can use a combination of custom-transmit transactions and PIO-transmit transactions.

Set this member to TRUE only if the minimum transfer unit for custom-transmit transactions is one byte, the minimum transaction length is one byte, and the write buffer for the transaction can start on any byte boundary in memory.

If Exclusive is TRUE, the MinimumTransferUnit, Alignment, and MinimumTransactionLength members must be zero.

Remarks

The SerCx2CustomTransmitCreate method accepts a pointer to a SERCX2_CUSTOM_TRANSMIT_CONFIG structure as an input parameter. Before calling SerCx2CustomTransmitCreate, call the SERCX2_CUSTOM_TRANSMIT_CONFIG_INIT function to initialize this structure.

Requirements

Requirement Value
Minimum supported client Supported starting with Windows 8.1.
Header sercx.h

See also

DMA_ADAPTER_INFO_V1

IRP_MJ_WRITE

SERCX2_CUSTOM_TRANSMIT_CONFIG_INIT

SerCx2CustomTransmitCreate