Función SerCx2PioTransmitCreate (sercx.h)

El método SerCx2PioTransmitCreate crea un objeto PIO-transmit, que versión 2 de la extensión del marco de trabajo serie (SerCx2) usa para realizar transacciones de transmisión de PIO.

Sintaxis

NTSTATUS SerCx2PioTransmitCreate(
  [in]           WDFDEVICE                   Device,
  [in]           PSERCX2_PIO_TRANSMIT_CONFIG PioTransmitConfig,
  [in, optional] PWDF_OBJECT_ATTRIBUTES      Attributes,
  [out]          SERCX2PIOTRANSMIT           *PioTransmit
);

Parámetros

[in] Device

Un controlador WDFDEVICE para el objeto de dispositivo de marco que representa el controlador serie. El controlador del controlador serie creó este objeto en su función de devolución de llamada EvtDriverDeviceAdd . Para obtener más información, vea SerCx2InitializeDevice.

[in] PioTransmitConfig

Puntero a una estructura de SERCX2_PIO_TRANSMIT_CONFIG . Antes de llamar a este método, el llamador debe llamar a la función SERCX2_PIO_TRANSMIT_CONFIG_INIT para inicializar la estructura. Esta estructura contiene punteros a un conjunto de rutinas de devolución de llamada de eventos implementadas por el controlador de controlador serie. SerCx2 llama a estas funciones para realizar transacciones de transmisión de PIO.

[in, optional] Attributes

Puntero a una estructura WDF_OBJECT_ATTRIBUTES que describe los atributos que se van a asignar al nuevo objeto PIO-transmit. Antes de llamar a este método, el autor de la llamada debe llamar a la función WDF_OBJECT_ATTRIBUTES_INIT para inicializar la estructura. Este parámetro es opcional y se puede especificar como WDF_NO_OBJECT_ATTRIBUTES si el controlador del controlador serie no necesita asignar atributos al objeto . Para obtener más información, vea la sección Comentarios.

[out] PioTransmit

Puntero a una ubicación en la que este método escribe un identificador de SERCX2PIOTRANSMIT en el objeto pio-transmit recién creado. SerCx2 y el controlador de controlador serie usan este identificador en llamadas posteriores para hacer referencia a este objeto.

Valor devuelto

Este método devuelve STATUS_SUCCESS si la llamada se realiza correctamente. Entre los posibles valores devueltos de error se incluyen los siguientes códigos de estado.

Código devuelto Descripción
STATUS_INVALID_DEVICE_REQUEST
Ya existe un objeto PIO-transmit desde una llamada anterior a SerCx2PioTransmitCreate .
STATUS_INFO_LENGTH_MISMATCH
El valortamaño de configuración-> no es igual a sizeof(SERCX2_PIO_TRANSMIT_CONFIG).
STATUS_INVALID_PARAMETER
La combinación especificada de funciones de devolución de llamada implementadas no es válida. El controlador debe implementar las funciones EvtSerCx2PioTransmitWriteBuffer, EvtSerCx2PioTransmitEnableReadyNotification y EvtSerCx2PioTransmitCancelReadyNotification . El controlador debe implementar las tres o ninguna de las funciones EvtSerCx2PioTransmitDrainFifo, EvtSerCx2PioTransmitCancelCancelDrainFifo y EvtSerCx2PioTransmitPurgeFifo .
STATUS_INSUFFICIENT_RESOURCES
Hay recursos insuficientes disponibles para realizar la operación solicitada.

Comentarios

El controlador de serie llama a este método para crear un objeto pio-transmit. SerCx2 utiliza este objeto para realizar transacciones de transmisión de PIO, que son transacciones que usan E/S programadas (PIO) para escribir datos en el controlador serie que se van a transmitir.

Normalmente, un controlador de controlador serie llama a SerCx2PioTransmitCreate desde su función EvtDriverDeviceAdd . El controlador debe llamar a este método solo después de llamar correctamente al método SerCx2InitializeDevice .

Como opción, un controlador de controlador serie puede usar el parámetro Attributes para crear un contexto para el objeto PIO-transmit y proporcionar punteros a las funciones EvtCleanupCallback y EvtDestroyCallback a las que se llama para preparar el objeto para su eliminación. Para obtener más información, consulte WDF_OBJECT_ATTRIBUTES.

Si el parámetro Attributes apunta a una estructura de WDF_OBJECT_ATTRIBUTES , el autor de la llamada no debe sobrescribir los valores que escribe la función de inicialización WDF_OBJECT_ATTRIBUTES_INIT en los miembros ParentObject, ExecutionLevel y SynchronizationScope de esta estructura.

Para obtener más información sobre cómo crear objetos PIO-transmit, consulte SERCX2PIOTRANSMIT. Para obtener más información sobre las operaciones de transmisión de PIO, consulte SerCx2 PIO-Transmit Transactions.

Requisitos

Requisito Value
Cliente mínimo compatible Disponible a partir de Windows 8.1.
Plataforma de destino Universal
Encabezado sercx.h
IRQL <= DISPATCH_LEVEL

Consulte también

EvtCleanupCallback

EvtDestroyCallback

EvtDriverDeviceAdd

SERCX2PIOTRANSMIT

SERCX2_PIO_TRANSMIT_CONFIG

SERCX2_PIO_TRANSMIT_CONFIG_INIT

SerCx2InitializeDevice

WDF_OBJECT_ATTRIBUTES

WDF_OBJECT_ATTRIBUTES_INIT