Вызов proc_selfppid () из IOAudio kext в Lion - PullRequest
1 голос
/ 21 июля 2011

У меня есть kext, основанный на примере кода Apple AudioReflectorDriver (он перехватывает аудиовыход и делает копию).

При <= 10.6, когда вы вызываете proc_selfpid () внутри подкласса IOAudioEngine, он сообщает PID процесса, который генерирует аудио. На 10.7 он всегда сообщает coreaudio_d как процесс. </p>

Что изменилось? Кто-нибудь знает, где Apple зарегистрировала это изменение? Есть ли способ получить идентификатор исходного процесса в Lion?

Обновление ... инженер Apple DTS сообщил мне, что:

Audio HAL был полностью переписан в Lion, и это изменение почти наверняка стало побочным эффектом этих усилий. Я не верю, что это было преднамеренное изменение, но вместо этого оно было вызвано большими архитектурными изменениями в CoreAudio. Строго говоря, я не верю, что proc_selfpid когда-либо документировался, чтобы возвращать что-то полезное в аудио-контексте, поэтому вполне возможно, что эта информация просто больше недоступна.

[....]

Проблема не в том, что ядро ​​извлекает неправильный pid, а в том, что архитектура CoreAudio изменилась так, что звук поступает из другого процесса.

Все еще ждет ответа от него, есть ли способ получить эту информацию в 10.7.

Теперь я подозреваю, что это не было задокументировано, потому что переписывание не изменило API.

...