DXGKDDI_DPI2CIOTRANSMISSION funzione di callback (dispmprt.h)
Il callback DXGKDDI_DPI2CIOTRANSMISSION esegue operazioni I2C dp su operazioni di lettura/scrittura AUX sui dispositivi collegati direttamente nella GPU.
Sintassi
DXGKDDI_DPI2CIOTRANSMISSION DxgkddiDpi2ciotransmission;
NTSTATUS DxgkddiDpi2ciotransmission(
HANDLE Context,
PDXGKARG_DPI2CIOTRANSMISSION pArgs
)
{...}
Parametri
Context
Puntatore di contesto fornito durante l'esecuzione di query sull'interfaccia.
pArgs
Puntatore a una struttura DXGKARG_DPI2CIOTRANSMISSION.
Valore restituito
DXGKDDI_DPI2CIOTRANSMISSION restituisce STATUS_SUCCESS se ha esito positivo; in caso contrario, restituisce un codice di errore, ad esempio uno dei seguenti:
Codice errore | Significato |
---|---|
STATUS_DRIVER_INTERNAL_ERROR | Si è verificato un errore software interno. |
STATUS_ACCESS_DENIED | La richiesta non è supportata. Per Windows 10 versione 2004, è supportato solo I2C in lettura AUX. |
STATUS_BUFFER_TOO_SMALL | Il buffer è troppo piccolo per l'operazione. |
STATUS_DEVICE_HARDWARE_ERROR | Si è verificato un errore hardware. |
STATUS_DEVICE_POWERED_OFF | Il dispositivo è spento. |
STATUS_DEVICE_NOT_CONNECTED | Il dispositivo non è connesso. |
STATUS_DEVICE_PROTOCOL_ERROR | Si è verificato un errore a livello di protocollo I2C rispetto al protocollo AUX. Il driver può usare DPNativeError per codificare altri dettagli sull'errore. |
Osservazioni
Questa chiamata DDI viene usata per eseguire DP I2C in lettura/scrittura AUX nei dispositivi collegati direttamente nella GPU.
Per I2C, la dimensione massima del buffer dati nella struttura DXGKARG_DPI2CIOTRANSMISSION a cui punta pArgs è di 128 byte. La combinazione di un'operazione di scrittura prima di un'operazione di lettura in una singola transazione/ciclo del bus è supportata per MCCS e altri protocolli. Il buffer di dati è di dimensioni BufferSizeSupplied, che deve essere maggiore o uguale al valore maggiore di byteToWrite e BytesToRead.
offset è l'indirizzo di I/O all'interno del dispositivo. Quando si imposta EDDCMode, sono presenti dispositivi E-DDC I2CAddress (0xA0 per EDID, 0xA4 per DisplayID). Il driver deve scrivere SegmentPointer nell'indirizzo I2C 0x60, WordOffset per I2CAddress e quindi eseguire l'operazione di I/O. Per tutti gli altri dispositivi I2C, il driver deve scrivere byte di offset in base a OffsetSizeInBytes.
In caso di errore, il driver deve restituire byte scritti e byteRead il più accuratamente possibile.
Per Windows 10 versione 2004, l'operazione di scrittura è consentita solo per l'indirizzo I2C MCCS di 0x6E. Tutte le altre operazioni verranno bloccate fino a quando non viene aggiunta una versione successiva del sistema operativo quando viene aggiunto il controllo di accesso.
Fabbisogno
Requisito | Valore |
---|---|
client minimo supportato | Windows 10, versione 2004 |
intestazione | dispmprt.h |