Функцию XLockDisplay (и макросы LockDisplay) следует использовать внутри одного и того же приложения XClient, то есть процесса ... Они не имеют никакого смысла для XClients (так, например, для 2 процессов). Это способ защиты от нескольких потоков (т.е. внутри одного и того же процесса), пытающихся получить доступ к одному и тому же соединению X (например, см. GLX-1.4, гл. 2.7)
Чтобы прочитать весь контент (буфер) другого окна, вы можете взглянуть на любое приложение, которое делает снимок экрана с вашего рабочего стола или из одного окна (см., Например, исходный код «scrot»).
Если вы хотите обмениваться данными между XClients, используйте их Свойства / Атомы (см. XLib ICCC).