- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Cheers,
-Ganesh
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I'm having trouble with EnumAttachableDevices returning expected values for the external HDMI display. I see the IGFX_ExternalFP (0x3)dwDeviceType, but status is IGFX_DISPLAY_DEVICE_NOATTACHED (0x1). The uidMonitor is always zero as well. As a result we end up with a failed _GetDisplayDevices().
Thanks,
Vincent
#define IGFX_NULL_DEVICE 0x0000
#define IGFX_CRT 0x0001
#define IGFX_LocalFP 0x0002
#define IGFX_ExternalFP 0x0003
#define IGFX_TV 0x0004
// Definition of pdwStatus DWORD flag used in EnumAttachableDevices method
#define IGFX_DISPLAY_DEVICE_NOTATTACHED 0x001 // No display device currently attached
#define IGFX_DISPLAY_DEVICE_ATTACHED 0x002 // Attached
#define IGFX_DISPLAY_DEVICE_OVERRIDE 0x004 // Policy indicates Unattached devicewill be treated as Attached #define IGFX_DISPLAY_DEVICE_ACTIVE 0x010 // Active device
#define IGFX_DISPLAY_DEVICE_PRIMARY 0x100 // Primary Display Device
#define IGFX_DISPLAY_DEVICE_SECONDARY 0x200 // secondary Display Device
DISPLAY_DEVICE display;
DWORD dwStatus;
bool bResult;
DWORD uidMonitor;
DWORD dwDeviceType;
void CInfoFrameGen::_GetDisplayDevice()
{
bTVDetected = false;
for (int iIndex=0;iIndex,4;iIndex++)
{
bResult = EnumDisplayDevices(NULL, 0, &display, 0);
hr = pCUIExternal->EnumAttachableDevices(display.DeviceName, iIndex, &uidMonitor, &dwDeviceType, &dwStatus);
if (hr != S_OK)
{
return;
}
if ((dwDeviceType==IGFX_ExternalFP) && (IGFX_DISPLAY_DEVICE_NOTATTACHED != dwStatus))
{
bTVDetected = true;
break;
}
}
}
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Here are the results of EnumAttachableDevices:
EnumAttachableDevices() hr:0x0 DeviceName:\\.\DISPLAY1 iIndex:0 uidMonitor:1 dwDeviceType:1 dwStatus:274
EnumAttachableDevices() hr:0x0 DeviceName:\\.\DISPLAY1 iIndex:1 uidMonitor:256 dwDeviceType:5 dwStatus:274
EnumAttachableDevices() hr:0x0 DeviceName:\\.\DISPLAY1 iIndex:2 uidMonitor:0 dwDeviceType:2 dwStatus:1
EnumAttachableDevices() hr:0x0 DeviceName:\\.\DISPLAY1 iIndex:3 uidMonitor:0 dwDeviceType:3 dwStatus:1
EnumAttachableDevices() hr:0x0 DeviceName:\\.\DISPLAY1 iIndex:4 uidMonitor:0 dwDeviceType:4 dwStatus:1
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I've added more details to the thread. Thanks in advance for your help.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
do the release notes here
http://driveragent.com/0/archive/12e01558/image/1-0-2/Intel--G35-Express-Chipset-Family
indicate a problem similar to yours was addressed in that build?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Before calling EnumDisplayDevices, you must initialize the cb member of DISPLAY_DEVICE to the size, in bytes, of DISPLAY_DEVICE.
have you tried that?
why do you pass in 0 as the iDevNum for EnumDisplayDevices? that means you only see device 0 if more than 1 monitor is attached.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
The main problem is that I've inherited this code and don't have any documentation for the driver API calls. For the Windows EnumDisplayDevices call the codedoes set cb. It appears that all that is needed is the display.DeviceName for use in the EnumAttachableDevices call. The EnumDisplayDevicesshould be outside of the for loop.
From what I understand I need the CUI SDK for the drive API calls such as EnumAttachableDevices. I'm trying to locate the SDK.I've contacted authorized distributors but amawaiting a reply.
Please confirm if the CUI SDK is what I need.
Thanks
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
However, the MSDN code I find uses EnumDisplayDevices in a different way. See
http://msdn.microsoft.com/en-us/library/dd144942(VS.85).aspx
There, the API is called twice, once to retreive the adapter name, and a second time for the monitor for the device.
It might be worth executing this other code, to see if it returns more expected values in your situation.
WRT CUI SDK, some one else from Intel will have to speak up as dont know how to get access to it.

- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page