IOMobileFramebufferGetLayerDefaultSurface-Funktion unter iOS 9 fehlgeschlagen

Ich habe eine App erstellt, um Screenshots im Hintergrund aufzunehmen. Es funktioniert gut unter iOS 7.x und 8.x, konnte aber unter iOS 9 Beta nicht ausgeführt werden. Hier ist mein Code:

CFMutableDictionaryRef sm = IOServiceMatching("AppleH1CLCD");
io_service_t ioService = IOServiceGetMatchingService(kIOMasterPortDefault, sm);
if (!ioService)
{
    sm = IOServiceMatching("AppleM2CLCD");
    ioService = IOServiceGetMatchingService(kIOMasterPortDefault, sm);
}

if (!ioService)
{
    sm = IOServiceMatching("AppleCLCD");
    ioService = IOServiceGetMatchingService(kIOMasterPortDefault, sm);
} 


IOMobileFramebufferConnection connection = 0;
IOSurfaceRef ptr = nil;

IOMobileFramebufferReturn openMobileFrameBufferResult = IOMobileFramebufferOpen(ioService, mach_task_self(), 0, &connection);

if (openMobileFrameBufferResult)
{
    return;
}

IOMobileFramebufferReturn getLayerDefaultSurfaceResult = IOMobileFramebufferGetLayerDefaultSurface(connection, 0,  (CoreSurfaceBufferRef*)&ptr);
if (getLayerDefaultSurfaceResult)
{
    return;   // Here, the getLayerDefaultSurfaceResult is -536870201, not 0!
}

.......

eim schrittweisen Debuggen stellte ich fest, dass die Funktion IOMobileFramebufferGetLayerDefaultSurface mit einem zurückgegebenen Wert von -536870201 nicht ausgeführt werden konnte und der erwartete Wert 0 wa

Wer kann mir sagen, warum das passiert ist und wie man es löst? thhhhhhhhhhhhhhh !!

Antworten auf die Frage(2)

Ihre Antwort auf die Frage