Code Block CFMutableDictionaryRef matching = IOServiceMatching("IODisplayConnect"); io_iterator_t iter = 99; kern_return_t err = IOServiceGetMatchingServices( kIOMasterPortDefault, matching, &iter );
The "matching" variable seems valid:
Code Block 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...
Same issue faced, Then tried an alternative method to read serial number using shell command. But same result empty for serial number. Fetching all other details of monitor but empty for ""spdisplays_display-serial-number"" key.