Post not yet marked as solved
Post marked as unsolved with 9 replies, 1,976 views
The following code sequence works on Catalina and on Intel Big Sur devices, it does not work on the new Apple M1 devices running Big Sur.
CFMutableDictionaryRef matching = IOServiceMatching("IODisplayConnect");
io_iterator_t iter = 99;
kern_return_t err = IOServiceGetMatchingServices( kIOMasterPortDefault, matching, &iter );
The "matching" variable seems valid:
matching CFMutableDictionaryRef 1 key/value pair
[0] "IOProviderClass" : "IODisplayConnect"
		key __NSCFConstantString * "IOProviderClass"
		value __NSCFString * "IODisplayConnect"
The call to "IOServiceGetMatchingServices" sets the "iter" value to 0.
If I use another class name in the "IOServiceMatching" call, say "IOMediaBSDClient", "IOServiceGetMatchingServices" returns a valid iterator.
Would Big Sur on Apple M1 devices need additional calls, or has this service class been deprecated?
Using "IODisplayConnect" allows me to get display information via "IODisplayCreateInfoDictionary".
Suggestions...