DXGKDDI_I2C_RECEIVE_DATA_FROM_DISPLAY função de retorno de chamada (dispmprt.h)

O DxgkDdiI2CReceiveDataFromDisplay retorna dados recebidos de um dispositivo I2C em um monitor.

Sintaxe

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

Um identificador para um bloco de contexto associado a um adaptador de exibição. A função DxgkDdiAddDevice do driver de miniport de exibição anteriormente forneceu esse identificador para o subsistema de kernel de elementos gráficos do Microsoft DirectX.

[in] VidPnTargetId

Um inteiro que identifica um dos destinos presentes do vídeo no adaptador de exibição.

[in] SevenBitI2CAddress

O endereço do dispositivo I2C do qual os dados serão recebidos.

[in] Flags

Um valor que especifica se o comprimento dos dados é fornecido como parte dos dados transmitidos pelo dispositivo I2C. Esse parâmetro deve ser definido como um dos valores a seguir.

Valor Significado
I2C_NO_FLAGS O comprimento dos dados é fornecido pelo parâmetro DataLength. O dispositivo I2C não fornece o comprimento dos dados como parte dos dados que ele transmite.
I2C_DEVICE_TRANSMITS_DATA_LENGTH O tamanho dos dados é fornecido pelo dispositivo I2C como parte dos dados que ele transmite. O dispositivo I2C transmite pelo menos dois bytes. Os sete bits menos significativos do segundo byte transmitido contêm o comprimento intermediário. Você pode calcular o número de bytes que serão transmitidos após o byte que contém o comprimento intermediário adicionando um ao comprimento intermediário.

[in] DataLength

O comprimento, em bytes, do buffer apontado pelos Dados.

[out] Data

Um ponteiro para um buffer que recebe os dados. O buffer pode estar na memória paged.

Valor retornado

DxgkDdiI2CReceiveDataFromDisplayretornará STATUS_SUCCESS se tiver êxito. Caso contrário, ele retornará um dos códigos de erro definidos em Ntstatus.h. A lista a seguir fornece alguns dos possíveis códigos de erro que podem ser retornados.

Código de retorno Descrição
STATUS_GRAPHICS_MONITOR_NOT_CONNECTED Não há nenhum monitor conectado à saída de vídeo identificada por VidPnTargetId.
STATUS_GRAPHICS_I2C_NOT_SUPPORTED A saída de vídeo identificada por VidPnTargetId não tem um barramento I2C.
STATUS_GRAPHICS_I2C_DEVICE_DOES_NOT_EXIST Nenhum dispositivo reconheceu o endereço I2C fornecido em SevenBitI2CAddress. Isso pode significar que nenhum dispositivo no barramento I2C tem o endereço especificado ou que ocorreu um erro quando o endereço foi transmitido.
STATUS_GRAPHICS_I2C_ERROR_RECEIVING_DATA O endereço I2C foi transmitido com êxito, mas houve um erro ao receber dados do dispositivo I2C.
STATUS_BUFFER_TOO_SMALL O valor fornecido no DataLength é menor que o tamanho do buffer de dados necessário. Esse valor retornado só será significativo se o sinalizador I2C_DEVICE_TRANSMITS_DATA_LENGTH estiver definido.

Comentários

O destino presente do vídeo identificado por VidPnTargetId está associado a uma das saídas de vídeo no adaptador de exibição. Os dados são recebidos de um dispositivo I2C no monitor que está conectado a essa saída de vídeo.

A função DxgkDdiI2CReceiveDataFromDisplay é responsável por sinalizar a condição de início de I2C, enviar o endereço I2C, receber os dados do dispositivo I2C, enviar confirmações e sinalizar a condição de parada. Para obter detalhes sobre o barramento I2C, consulte a Especificação do Barramento I2C, publicada pela Philips Semiconductors. A especificação define um protocolo para iniciar a comunicação I2C, ler e gravar bytes na linha de dados I2C e encerrar a comunicação I2C. (Esse recurso pode não estar disponível em alguns idiomas

e países.)

DxgkDdiI2CReceiveDataFromDisplayé necessário para receber dados de um dispositivo I2C que tem endereço 0x6F mas tem permissão para recusar receber dados de qualquer dispositivo I2C que tenha um endereço diferente.

DxgkDdiI2CReceiveDataFromDisplay tem permissão para bloquear se outra parte do driver de miniport de exibição ou hardware gráfico estiver usando o barramento I2C do monitor especificado. Também é permitido bloquear se o driver de miniporto de exibição estiver usando o barramento I2C para enviar ou receber dados hdCP (Proteção de Conteúdo Digital de Alta Largura de Banda).

Se o adaptador de exibição der suporte ao HDCP, dxgkDdiI2CReceiveDataFromDisplay deverá recusar-se a receber dados de um dispositivo I2C se o dispositivo tiver um endereço I2C usado pelo HDCP.

DxgkDdiI2CReceiveDataFromDisplay nunca deve receber dados de um dispositivo I2C no adaptador de exibição. Ou seja, essa função pode receber dados de um dispositivo I2C em um monitor conectado ao adaptador de exibição, mas não de um dispositivo I2C que está no próprio adaptador de exibição.

DxgkDdiI2CReceiveDataFromDisplay deve ser tornado pageable.

Requisitos

   
Cliente mínimo com suporte Disponível no Windows Vista e versões posteriores dos sistemas operacionais Windows.
Plataforma de Destino Desktop
Cabeçalho dispmprt.h (include Dispmprt.h)
IRQL PASSIVE_LEVEL

Confira também

DxgkDdiI2CTransmitDataToDisplay