Если вы пытаетесь управлять порядком заказа крюка Apache из источника вашего модуля, вы можете попробовать использовать APR_HOOK_FIRST
, APR_HOOK_MIDDLE
и APR_HOOK_LAST
. Или вы можете специально назвать другие модули, чтобы обеспечить ограничения порядка. Из docs:.
... «Есть два механизма для осуществления этого первое, довольно грубого, метод, позволяет указать примерно, где крючок выполняемый по сравнению с другими модулями Окончательного контроля аргумента это. . Есть три возможных значения:. APR_HOOK_FIRST, APR_HOOK_MIDDLE и APR_HOOK_LAST
«Все модули, использующие любое конкретное значение может выполняться в любом порядке по отношению друг к другу, но, конечно же, все модули, использующие APR_HOOK_FIRST будут запущены до APR_HOOK_MIDDLE, который до APR_HOOK_LAST. Модули, которые не заботятся, когда они запускаются, должны использовать APR_HOOK_MIDDLE. Эти значения отстоят друг от друга, так что позиции, подобные APR_HOOK_FIRST-2, можно зацепить чуть раньше, чем другие функции. ...
«Другой метод позволяет более тонкое управление.Когда модуль знает, что он должен быть запущен до (или после) некоторых других модулей, он может указывать их по имени. Второй (третий) аргумент - это NULL- завершенный массив строк, состоящий из имен модулей, которые должны быть запущены до (после) текущего модуля. Например, предположим, что мы хотим, чтобы «mod_xyz.c» и «mod_abc.c» выполнялись до того, как мы это сделаем, следующим образом ... "[пример следует]
Я думаю (но я не уверен, поэтому не принимайте это как авторитетные) модули загружаются в том порядке, в котором директивы' LoadModule' появляются в файл конфигурации. Вероятно, вы должны просто сбой с ошибкой, если 'GetModuleHandle' терпит неудачу и документирует тот факт, что порядок важен. – larsks