Función SerCx2InitializeDevice (sercx.h)

El método SerCx2InitializeDevice termina de inicializar el objeto de dispositivo de marco para el controlador serie.

Sintaxis

NTSTATUS SerCx2InitializeDevice(
  [in] WDFDEVICE      Device,
  [in] PSERCX2_CONFIG Config
);

Parámetros

[in] Device

Un controlador WDFDEVICE para el objeto de dispositivo de marco que representa el controlador serie. Para obtener más información, vea la sección Comentarios.

[in] Config

Puntero a una estructura de SERCX2_CONFIG asignada por el autor de la llamada que contiene punteros a un conjunto de funciones de devolución de llamada de eventos implementadas por el controlador del controlador serie. La versión 2 del controlador de marco de trabajo serie (SerCx2) llama a estas funciones para configurar el controlador serie y para realizar operaciones básicas independientes de los tipos de transacción de E/S (PIO, DMA del sistema o personalizados) que admite el controlador.

Valor devuelto

SerCx2InitializeDevice 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
Se llamó al método en irQL incorrecto o el parámetro Device no es un identificador WDFDEVICE válido.
STATUS_INFO_LENGTH_MISMATCH
El valortamaño de configuración-> no es igual a sizeof(SERCX2_CONFIG).
STATUS_INVALID_PARAMETER
El miembro RequestAttributes no es válido o faltan funciones de devolución de llamada necesarias en la lista de punteros de función. Para obtener más información, vea la sección Comentarios.
STATUS_INSUFFICIENT_RESOURCES
Hay recursos insuficientes disponibles para realizar la operación solicitada.

Comentarios

Antes de llamar a este método, el controlador de controlador serie debe haber llamado previamente al método SerCx2InitializeDeviceInit .

El controlador de controlador de serie debe llamar a este método desde su función de devolución de llamada EvtDriverDeviceAdd después de crear un objeto de dispositivo de marco para el controlador serie. Normalmente, el controlador llama a un método como WdfDeviceCreate para crear el objeto de dispositivo de marco y para obtener un identificador WDFDEVICE para este objeto.

SerCx2 requiere tres de los punteros de función en la estructura SERCX2_CONFIG . El controlador debe implementar las funciones de devolución de llamada EvtSerCx2PurgeFifos, EvtSerCx2Control y EvtSerCx2ApplyConfig . De lo contrario, se produce un error en la llamada a SerCx2InitializeDevice y devuelve STATUS_INVALID_PARAMETER.

Si el miembro RequestAttributes de la estructura de SERCX2_CONFIG se establece en un valor distinto de WDF_NO_OBJECT_ATTRIBUTES, el controlador no debe sobrescribir los valores escritos en los miembros ParentObject, ExecutionLevel y SynchronizationScope de esta estructura mediante la función WDF_OBJECT_ATTRIBUTES_INIT . De lo contrario, se produce un error en la llamada a SerCx2InitializeDevice y devuelve STATUS_INVALID_PARAMETER.

Si el controlador llama al método WdfDeviceInitSetRequestAttributes para establecer los atributos que se van a usar para objetos de solicitud, los atributos de solicitud especificados en esta llamada deben coincidir con los atributos de solicitud que el controlador especifica en la llamada a SerCx2InitializeDevice. Para obtener más información, vea SerCx2 Custom-Receive Transactions y SerCx2 Custom-Transmit Transactions.

Requisitos

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

Consulte también

EvtDriverDeviceAdd

SERCX2_CONFIG

SerCx2InitializeDeviceInit

WdfDeviceCreate

WdfDeviceInitSetRequestAttributes