Mystery HRESULT, 0x889000D - PullRequest
       9

Mystery HRESULT, 0x889000D

1 голос
/ 22 июля 2009

Десятичное число: 143196173
Hex: 0x889000D

Результаты вызова IAudioSessionControl2-> GetProcessId () .

GetLastError = 126 *
Сообщение = "Указанный модуль не найден"

Я не совсем уверен, как интерпретировать эту ошибку. Кроме того, я не могу найти описание HRESULT нигде. Документированные коды возврата: S_OK, E_POINTER, AUDCLNT_E_NO_SINGLE_PROCESS и AUDCLNT_E_DEVICE_INVALIDATED.

Кто-нибудь знает, что означает этот код?

* Это ошибка, вызванная через управляемую / неуправляемую границу, полученную Marshal.GetLastError с Win32Exception, предоставляющим сообщение. Это может быть поддельным, но это то, что у меня есть. HRESULT извлекается из неуправляемого кода напрямую.


Дальнейшее расследование, FAILED () , похоже, не считает, что это ошибка. Однако параметр out очищается (устанавливается в 0), что на самом деле не имеет смысла. Кроме того, GetErrorInfo возвращает S_FALSE; поэтому нет никакой дополнительной отладочной информации для продолжения.

Ответы [ 2 ]

4 голосов
/ 25 июля 2009

Это AUDCLNT_S_NO_CURRENT_PROCESS - я понял, что он как-то пропустил заголовки Windows 7 SDK слишком поздно.

Документация SDK будет обновлена, чтобы отразить это.

Результат означает, что сеанс является межпроцессным сеансом. Возвращенный идентификатор процесса является идентификатором процесса для первого процесса, который создал сеанс, но если вы получите этот результат, вы действительно не сможете зависеть от идентификатора процесса, поскольку идентификатор процесса не уникален.

0 голосов
/ 22 июля 2009

COM-методы могут установить IErrorInfo в случае сбоя. Попробуйте найти его - он может содержать дополнительную информацию. В неуправляемом коде вы используете для этого GetErrorInfo ().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...