I am using below reference code in the CUI Doc v0.96 to read DPCD register data from a DP-VGA dongle which is connected to the downstream port of DP MST Hub (PC -> DP MST Hub -> DP-VGA dongle -> VGA monitor).
enum IGFX_PORT_TYPES portType;
struct IGFX_DP_RELATIVE_ADDRESS relativeAddress;
unsigned long dwOpType;
unsigned long dwSize;
unsigned long dwAddress;
unsigned char Data;
DWORD dwError = 0;
InData.relativeAddress.ucTotalLinkCount = pDisplays->relativeAddress.ucTotalLinkCount;
InData.relativeAddress.ucAddress = pDisplays->relativeAddress.ucAddress;
InData.portType = pDPTopology-> PortList;
InData.dwOpType = IGFX_REMOTE_AUX_READ;
InData.dwSize = 5;
InData.dwAddress = 0x500;
hr = pCUIExternal8->GetDeviceData((GUID*)&IGFX_GET_SET_REMOTE_AUX_INFO_GUID, sizeof(InData), (BYTE*)&InData, &dwError);
I could see DP MST Hub reading 5 bytes DPCD register data from DP-VGA dongle at DPCD register address 0x500 by using DP AUX analyzer and received hr = OK from API call, however the reading back DPCD register data is not stored in the data buffer (InData.Data). InData.Data -  has all "0" data.
Any comment to solve the issue would be very appreciated.