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...
10
1
5.9k