Что конкретно вызывает повышение EPrivilege?

Я получаю сообщение об ошибке, что некоторые функции в коде воспроизведения музыки во внешней DLL (SDL_Mixer, в случае, если это помогает), которые моя программа использует, повышают привилегию EPrivilege. . DLL написана на C, поэтому я не могу получить полезную информацию о трассировке стека с помощью MadExcept, и проблема не воспроизводится на моем конце. И, что еще хуже, Я даже не знаю, что такое EPrivilege .

Я никогда не видел, чтобы он появлялся в моем собственном коде, в Интернете очень мало информации о нем и о том, что есть противоречие. (В одном объяснении говорится, что он вызывается ОС, если вы пытаетесь сделать что-то с ограниченной учетной записью, для которой требуются недоступные привилегии, другое говорит, что это вызывается ЦП, если вы пытаетесь выполнить инструкцию, которая превышает ваш уровень привилегий.)

Есть ли у кого-нибудь авторитетное объяснение причин EPrivilege? И есть ли у кого-нибудь идеи, как его можно поднять с помощью кода воспроизведения музыки на одной 64-битной машине с Windows 7 под учетной записью без прав администратора, но не поднять его при запуске того же кода на моей Windows 7 64 -bit-машина под учетной записью без прав администратора?

11
задан Mason Wheeler 24 June 2011 в 22:10
поделиться