DXGKDDI_I2C_RECEIVE_DATA_FROM_DISPLAY fonction de rappel (dispmprt.h)
DxgkDdiI2CReceiveDataFromDisplay retourne les données reçues d’un appareil I2C dans un moniteur.
Syntaxe
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
)
{...}
Paramètres
[in] MiniportDeviceContext
Handle d’un bloc de contexte associé à une carte d’affichage. La fonction DxgkDdiAddDevice du pilote miniport d’affichage fournissait précédemment cette poignée au sous-système du noyau graphique Microsoft DirectX.
[in] VidPnTargetId
Entier qui identifie l’une des cibles vidéo présentes sur l’adaptateur d’affichage.
[in] SevenBitI2CAddress
Adresse de l’appareil I2C à partir duquel les données seront reçues.
[in] Flags
Valeur qui spécifie si la longueur des données est fournie dans le cadre des données transmises par l’appareil I2C. Ce paramètre doit être défini sur l’une des valeurs suivantes.
Valeur | Signification |
---|---|
I2C_NO_FLAGS | La longueur des données est fournie par le paramètre DataLength. L’appareil I2C ne fournit pas la longueur des données dans le cadre des données qu’il transmet. |
I2C_DEVICE_TRANSMITS_DATA_LENGTH | La longueur des données est fournie par l’appareil I2C dans le cadre des données qu’il transmet. L’appareil I2C transmet au moins deux octets. Les sept bits les moins significatifs du deuxième octet transmis contiennent la longueur intermédiaire. Vous pouvez calculer le nombre d’octets qui seront transmis après l’octet qui contient la longueur intermédiaire en ajoutant un à la longueur intermédiaire. |
[in] DataLength
Longueur, en octets, de la mémoire tampon pointée vers data.
[out] Data
Pointeur vers une mémoire tampon qui reçoit les données. La mémoire tampon peut être en mémoire paginée.
Valeur retournée
DxgkDdiI2CReceiveDataFromDisplayretourne STATUS_SUCCESS si elle réussit. Sinon, il retourne l’un des codes d’erreur définis dans Ntstatus.h. La liste suivante fournit certains des codes d’erreur possibles qui peuvent être retournés.
Code de retour | Description |
---|---|
STATUS_GRAPHICS_MONITOR_NOT_CONNECTED | Aucun moniteur n’est connecté à la sortie vidéo identifiée par VidPnTargetId. |
STATUS_GRAPHICS_I2C_NOT_SUPPORTED | La sortie vidéo identifiée par VidPnTargetId n’a pas de bus I2C. |
STATUS_GRAPHICS_I2C_DEVICE_DOES_NOT_EXIST | Aucun appareil n’a reconnu l’adresse I2C fournie dans SevenBitI2CAddress. Cela peut signifier qu’aucun appareil du bus I2C n’a l’adresse spécifiée ou qu’une erreur s’est produite lors de la transmission de l’adresse. |
STATUS_GRAPHICS_I2C_ERROR_RECEIVING_DATA | L’adresse I2C a été correctement transmise, mais une erreur s’est produite lors de la réception des données de l’appareil I2C. |
STATUS_BUFFER_TOO_SMALL | La valeur fournie dans DataLength est inférieure à la taille de mémoire tampon de données requise. Cette valeur de retour n’est significative que si l’indicateur I2C_DEVICE_TRANSMITS_DATA_LENGTH est défini. |
Remarques
La cible de présentation vidéo identifiée par VidPnTargetId est associée à l’une des sorties vidéo sur la carte d’affichage. Les données sont reçues à partir d’un appareil I2C dans le moniteur connecté à cette sortie vidéo.
La fonction DxgkDdiI2CReceiveDataFromDisplay est chargée de signaler la condition de début I2C, d’envoyer l’adresse I2C, de recevoir les données de l’appareil I2C, d’envoyer des accusés de réception et de signaler la condition d’arrêt. Pour plus d’informations sur le bus I2C, consultez la spécification du bus I2C, publiée par Philips Semiconductors. La spécification définit un protocole permettant d’initier la communication I2C, de lire et d’écrire des octets sur la ligne de données I2C et de mettre fin à la communication I2C. (Cette ressource n’est peut-être pas disponible dans certaines langues
et les pays.)
DxgkDdiI2CReceiveDataFromDisplayest nécessaire pour recevoir des données d’un appareil I2C dont l’adresse est 0x6F, mais qui est autorisé à refuser de recevoir des données de n’importe quel appareil I2C ayant une adresse différente.
DxgkDdiI2CReceiveDataFromDisplay est autorisé à bloquer si une autre partie du pilote miniport d’affichage ou du matériel graphique utilise le bus I2C du moniteur spécifié. Il est également autorisé à bloquer si le pilote de miniport d’affichage utilise le bus I2C pour envoyer ou recevoir des données HDCP (Haute bande passante).
Si l’adaptateur d’affichage prend en charge HDCP, DxgkDdiI2CReceiveDataFromDisplay doit refuser de recevoir des données d’un appareil I2C si l’appareil a une adresse I2C utilisée par HDCP.
DxgkDdiI2CReceiveDataFromDisplay ne doit jamais recevoir de données d’un appareil I2C sur l’adaptateur d’affichage. Autrement dit, cette fonction peut recevoir des données à partir d’un appareil I2C dans un moniteur connecté à l’adaptateur d’affichage, mais pas à partir d’un appareil I2C qui se trouve sur l’adaptateur d’affichage lui-même.
DxgkDdiI2CReceiveDataFromDisplay doit être rendu paginable.
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Windows Vista |
Plateforme cible | Desktop (Expérience utilisateur) |
En-tête | dispmprt.h (inclure Dispmprt.h) |
IRQL | PASSIVE_LEVEL |