Compartir a través de


DXGKDDI_I2C_RECEIVE_DATA_FROM_DISPLAY función de devolución de llamada (dispmprt.h)

DxgkDdiI2CReceiveDataFromDisplay devuelve los datos recibidos de un dispositivo I2C en un monitor.

Sintaxis

DXGKDDI_I2C_RECEIVE_DATA_FROM_DISPLAY DxgkddiI2cReceiveDataFromDisplay;

NTSTATUS DxgkddiI2cReceiveDataFromDisplay(
  [in]  PVOID MiniportDeviceContext,
  [in]  D3DDDI_VIDEO_PRESENT_TARGET_ID VidPnTargetId,
  [in]  ULONG SevenBitI2CAddress,
  [in]  ULONG Flags,
  [in]  ULONG DataLength,
  [out] PVOID Data
)
{...}

Parámetros

[in] MiniportDeviceContext

Identificador de un bloque de contexto asociado a un adaptador de pantalla. La función DxgkDdiAddDevice del controlador de miniporte de pantalla proporcionó anteriormente este identificador al subsistema del kernel de gráficos de Microsoft DirectX.

[in] VidPnTargetId

Entero que identifica uno de los destinos presentes de vídeo en el adaptador de pantalla.

[in] SevenBitI2CAddress

Dirección del dispositivo I2C desde el que se recibirán los datos.

[in] Flags

Valor que especifica si la longitud de los datos se proporciona como parte de los datos transmitidos por el dispositivo I2C. Este parámetro debe establecerse en uno de los valores siguientes.

Valor Significado
I2C_NO_FLAGS El parámetro DataLength proporciona la longitud de los datos. El dispositivo I2C no proporciona la longitud de los datos como parte de los datos que transmite.
I2C_DEVICE_TRANSMITS_DATA_LENGTH El dispositivo I2C proporciona la longitud de los datos que transmite. El dispositivo I2C transmite al menos dos bytes. Los siete bits menos significativos del segundo byte transmitido contienen la longitud intermedia. Puede calcular el número de bytes que se transmitirán después del byte que contiene la longitud intermedia agregando uno a la longitud intermedia.

[in] DataLength

Longitud, en bytes, del búfer al que apunta Data.

[out] Data

Puntero a un búfer que recibe los datos. El búfer puede estar en memoria paginada.

Valor devuelto

DxgkDdiI2CReceiveDataFromDisplaydevuelve STATUS_SUCCESS si se realiza correctamente. De lo contrario, devuelve uno de los códigos de error definidos en Ntstatus.h. En la lista siguiente se proporcionan algunos de los posibles códigos de error que se pueden devolver.

Código devuelto Descripción
STATUS_GRAPHICS_MONITOR_NOT_CONNECTED No hay ningún monitor conectado a la salida de vídeo identificada por VidPnTargetId.
STATUS_GRAPHICS_I2C_NOT_SUPPORTED La salida de vídeo identificada por VidPnTargetId no tiene un bus I2C.
STATUS_GRAPHICS_I2C_DEVICE_DOES_NOT_EXIST Ningún dispositivo reconoció la dirección I2C proporcionada en SevenBitI2CAddress. Esto podría significar que ningún dispositivo del bus I2C tiene la dirección especificada o que se produjo un error cuando se transmitió la dirección.
STATUS_GRAPHICS_I2C_ERROR_RECEIVING_DATA La dirección I2C se ha transmitido correctamente, pero se produjo un error al recibir datos del dispositivo I2C.
STATUS_BUFFER_TOO_SMALL El valor proporcionado en DataLength es menor que el tamaño de búfer de datos necesario. Este valor devuelto solo es significativo si se establece la marca I2C_DEVICE_TRANSMITS_DATA_LENGTH.

Comentarios

El destino de presentación de vídeo identificado por VidPnTargetId está asociado a una de las salidas de vídeo en el adaptador de pantalla. Los datos se reciben de un dispositivo I2C en el monitor que está conectado a esa salida de vídeo.

La función DxgkDdiI2CReceiveDataFromDisplay es responsable de indicar la condición de inicio de I2C, enviar la dirección I2C, recibir los datos del dispositivo I2C, enviar confirmaciones y señalar la condición de detención. Para obtener más información sobre el bus I2C, consulte la especificación de bus I2C, publicada por Philips Semiconductors. La especificación define un protocolo para iniciar la comunicación I2C, leer y escribir bytes en la línea de datos I2C y finalizar la comunicación I2C. (Es posible que este recurso no esté disponible en algunos idiomas

y países).

DxgkDdiI2CReceiveDataFromDisplayes necesario para recibir datos de un dispositivo I2C que tiene dirección 0x6F, pero que puede rechazar recibir datos de cualquier dispositivo I2C que tenga una dirección diferente.

DxgkDdiI2CReceiveDataFromDisplay se puede bloquear si otra parte del controlador de miniporte de pantalla o el hardware gráfico usa el bus I2C del monitor especificado. También se permite bloquear si el controlador de minipuerto de pantalla usa el bus I2C para enviar o recibir datos de Protección de contenido digital (HDCP) de ancho de banda alto.

Si el adaptador de pantalla admite HDCP, DxgkDdiI2CReceiveDataFromDisplay debe rechazar recibir datos de un dispositivo I2C si el dispositivo tiene una dirección I2C que usa HDCP.

DxgkDdiI2CReceiveDataFromDisplay nunca debe recibir datos de un dispositivo I2C en el adaptador de pantalla. Es decir, esta función puede recibir datos de un dispositivo I2C en un monitor conectado al adaptador de pantalla, pero no desde un dispositivo I2C que esté en el propio adaptador de pantalla.

DxgkDdiI2CReceiveDataFromDisplay debe ser paginable.

Requisitos

Requisito Value
Cliente mínimo compatible Windows Vista
Plataforma de destino Escritorio
Encabezado dispmprt.h (include Dispmprt.h)
IRQL PASSIVE_LEVEL

Consulte también

DxgkDdiI2CTransmitDataToDisplay