SERCX2_CONFIG structure (sercx.h)
The SERCX2_CONFIG structure contains configuration information for version 2 of the serial framework extension (SerCx2).
Syntax
typedef struct _SERCX2_CONFIG {
ULONG Size;
PFN_SERCX2_FILEOPEN EvtSerCx2FileOpen;
PFN_SERCX2_FILECLOSE EvtSerCx2FileClose;
PFN_SERCX2_SET_WAIT_MASK EvtSerCx2SetWaitMask;
PFN_SERCX2_PURGE_FIFOS EvtSerCx2PurgeFifos;
PFN_SERCX2_CONTROL EvtSerCx2Control;
PFN_SERCX2_APPLY_CONFIG EvtSerCx2ApplyConfig;
PFN_SERCX2_SELECT_NEXT_RECEIVE_TRANSACTION_TYPE EvtSerCx2SelectNextReceiveTransactionType;
PFN_SERCX2_SELECT_NEXT_TRANSMIT_TRANSACTION_TYPE EvtSerCx2SelectNextTransmitTransactionType;
PWDF_OBJECT_ATTRIBUTES RequestAttributes;
} SERCX2_CONFIG, *PSERCX2_CONFIG;
Members
Size
The size, in bytes, of this structure. The SerCx2InitializeDevice 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.
EvtSerCx2FileOpen
A pointer to the driver-implemented EvtSerCx2FileOpen event callback function. This member is optional and can be set to NULL to indicate that the driver does not implement the function. However, a driver that implements this function must also implement an EvtSerCx2FileClose function.
EvtSerCx2FileClose
A pointer to the driver-implemented EvtSerCx2FileClose event callback function. This member is optional and can be set to NULL to indicate that the driver does not implement the function.
EvtSerCx2SetWaitMask
A pointer to the driver-implemented EvtSerCx2SetWaitmask event callback function. This member must point to a valid function.
EvtSerCx2PurgeFifos
A pointer to the driver-implemented EvtSerCx2PurgeFifos event callback function. This member must point to a valid function.
EvtSerCx2Control
A pointer to the driver-implemented EvtSerCx2Control event callback function. This member must point to a valid function.
EvtSerCx2ApplyConfig
A pointer to the driver-implemented EvtSerCx2ApplyConfig event callback function. This member must point to a valid function.
EvtSerCx2SelectNextReceiveTransactionType
A pointer to the driver-implemented EvtSerCx2SelectNextReceiveTransactionType event callback function. This member is optional and can be set to NULL to indicate that the driver does not implement the function.
EvtSerCx2SelectNextTransmitTransactionType
A pointer to the driver-implemented EvtSerCx2SelectNextTransmitTransactionType event callback function. This member is optional and can be set to NULL to indicate that the driver does not implement the function.
RequestAttributes
A pointer to a WDF_OBJECT_ATTRIBUTES structure that describes the attributes to assign to the framework request objects that SerCx2 passes to the serial controller driver. Before calling the SerCx2InitializeDevice method, the caller must call the WDF_OBJECT_ATTRIBUTES_INIT function to initialize the structure. This member is optional and can be specified as WDF_NO_OBJECT_ATTRIBUTES if the serial controller driver does not need to assign attributes to the object. For more information, see Remarks.
Remarks
The SerCx2InitializeDevice method accepts a pointer to a SERCX2_CONFIG structure as an input parameter. Before calling SerCx2InitializeDevice, call the SERCX2_CONFIG_INIT function to initialize this structure.
If the RequestAttributes member points to a WDF_OBJECT_ATTRIBUTES structure, the caller must not overwrite the values that the WDF_OBJECT_ATTRIBUTES_INIT initialization function writes to the ParentObject, ExecutionLevel, and SynchronizationScope members of this structure.
A driver might need to store information in context areas in the framework request objects that the driver receives. Typically, the driver calls the WdfDeviceInitSetRequestAttributes method to specify the required attributes for request objects. These attributes include the name and size of the context area in each request object. Additionally, in the current implementation of SerCx2, a serial controller driver that requires a request context should specify these same attributes in the RequestAttributes member of the SERCX2_CONFIG structure that the driver passes to SerCx2InitializeDevice. That is, the driver should specify the same request attributes twice—in the SerCx2InitializeDevice call, and in the WdfDeviceInitSetRequestAttributes call. For more information, see SerCx2 Custom-Receive Transactions and SerCx2 Custom-Transmit Transactions.
A driver that never needs a request context does not need to call WdfDeviceInitSetRequestAttributes, and can set the RequestAttributes member of the SERCX2_CONFIG structure to WDF_NO_OBJECT_ATTRIBUTES.
Requirements
Requirement | Value |
---|---|
Minimum supported client | Supported starting with Windows 8.1. |
Header | sercx.h |
See also
EvtSerCx2SelectNextReceiveTransactionType