Condividi tramite


DXGKDDI_I2C_RECEIVE_DATA_FROM_DISPLAY funzione di callback (dispmprt.h)

DxgkDdiI2CReceiveDataFromDisplay restituisce i dati ricevuti da un dispositivo I2C in un monitor.

Sintassi

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
)
{...}

Parametri

[in] MiniportDeviceContext

Handle di un blocco di contesto associato a una scheda di visualizzazione. La funzione DxgkDdiAddDevice del driver miniport di visualizzazione ha fornito in precedenza questo handle al sottosistema kernel grafico Microsoft DirectX.

[in] VidPnTargetId

Intero che identifica una delle destinazioni del video presenti nella scheda di visualizzazione.

[in] SevenBitI2CAddress

Indirizzo del dispositivo I2C da cui verranno ricevuti i dati.

[in] Flags

Valore che specifica se la lunghezza dei dati viene fornita come parte dei dati trasmessi dal dispositivo I2C. Questo parametro deve essere impostato su uno dei valori seguenti.

Valore Significato
I2C_NO_FLAGS La lunghezza dei dati viene fornita dal parametro DataLength. Il dispositivo I2C non fornisce la lunghezza dei dati come parte dei dati trasmessi.
I2C_DEVICE_TRANSMITS_DATA_LENGTH La lunghezza dei dati viene fornita dal dispositivo I2C come parte dei dati trasmessi. Il dispositivo I2C trasmette almeno due byte. I sette bit meno significativi del secondo byte trasmesso contengono la lunghezza intermedia. È possibile calcolare il numero di byte che verranno trasmessi dopo il byte contenente la lunghezza intermedia aggiungendo uno alla lunghezza intermedia.

[in] DataLength

Lunghezza, in byte, del buffer a cui punta Dati.

[out] Data

Puntatore a un buffer che riceve i dati. Il buffer può trovarsi nella memoria di paging.

Valore restituito

DxgkDdiI2CReceiveDataFromDisplayrestituisce STATUS_SUCCESS se ha esito positivo. In caso contrario, restituisce uno dei codici di errore definiti in Ntstatus.h. L'elenco seguente fornisce alcuni dei possibili codici di errore che possono essere restituiti.

Codice restituito Descrizione
STATUS_GRAPHICS_MONITOR_NOT_CONNECTED Non è presente alcun monitor connesso all'output video identificato da VidPnTargetId.
STATUS_GRAPHICS_I2C_NOT_SUPPORTED L'output video identificato da VidPnTargetId non ha un bus I2C.
STATUS_GRAPHICS_I2C_DEVICE_DOES_NOT_EXIST Nessun dispositivo riconosciuto l'indirizzo I2C fornito in SevenBitI2CAddress. Ciò potrebbe significare che nessun dispositivo nel bus I2C ha l'indirizzo specificato o che si è verificato un errore quando l'indirizzo è stato trasmesso.
STATUS_GRAPHICS_I2C_ERROR_RECEIVING_DATA L'indirizzo I2C è stato trasmesso correttamente, ma si è verificato un errore durante la ricezione dei dati dal dispositivo I2C.
STATUS_BUFFER_TOO_SMALL Il valore specificato in DataLength è minore delle dimensioni necessarie del buffer dei dati. Questo valore restituito è significativo solo se il flag I2C_DEVICE_TRANSMITS_DATA_LENGTH è impostato.

Commenti

Il video presente destinazione identificato da VidPnTargetId è associato a uno degli output video nella scheda di visualizzazione. I dati vengono ricevuti da un dispositivo I2C nel monitor connesso a tale output video.

La funzione DxgkDdiI2CReceiveDataFromDisplay è responsabile della segnalazione della condizione di avvio I2C, dell'invio dell'indirizzo I2C, della ricezione dei dati dal dispositivo I2C, dell'invio di riconoscimenti e della segnalazione della condizione di arresto. Per informazioni dettagliate sul bus I2C, vedere la specifica del bus I2C, pubblicata da Philips Semiconduttors. La specifica definisce un protocollo per avviare la comunicazione I2C, leggere e scrivere byte sulla riga di dati I2C e terminare la comunicazione I2C. Questa risorsa potrebbe non essere disponibile in alcune lingue

e paesi.)

DxgkDdiI2CReceiveDataFromDisplayè necessario per ricevere dati da un dispositivo I2C con indirizzo 0x6F ma è autorizzato a rifiutare di ricevere dati da qualsiasi dispositivo I2C con un indirizzo diverso.

DxgkDdiI2CReceiveDataFromDisplay è autorizzato a bloccare se un'altra parte del driver miniport di visualizzazione o hardware grafico usa il bus I2C del monitor specificato. È anche consentito bloccare se il driver miniport dello schermo usa il bus I2C per inviare o ricevere dati HDCP (High-Bandwidth Digital Content Protection).

Se la scheda di visualizzazione supporta HDCP, DxgkDdiI2CReceiveDataFromDisplay deve rifiutare di ricevere dati da un dispositivo I2C se il dispositivo ha un indirizzo I2C usato da HDCP.

DxgkDdiI2CReceiveDataFromDisplay non deve mai ricevere dati da un dispositivo I2C nella scheda di visualizzazione. Ovvero, questa funzione può ricevere dati da un dispositivo I2C in un monitor connesso alla scheda di visualizzazione, ma non da un dispositivo I2C che si trova sulla scheda di visualizzazione stessa.

DxgkDdiI2CReceiveDataFromDisplay deve essere reso impaginabile.

Requisiti

Requisito Valore
Client minimo supportato Windows Vista
Piattaforma di destinazione Desktop
Intestazione dispmprt.h (include Dispmprt.h)
IRQL PASSIVE_LEVEL

Vedi anche

DxgkDdiI2CTransmitDataToDisplay