Ganchos de notificação
Os ganchos de notificação são chamados apenas antes que as seguintes ações sejam executadas na rotina auxiliar:
O identificador armazenado para a biblioteca é verificado para ver se ele já foi carregado.
LoadLibrary é chamado para tentar a carga da DLL.
GetProcAddress é chamado para tentar obter o endereço do procedimento.
Retornar para a conversão intermediária atraso de carga de importação.
O gancho de notificação está ativado:
Fornecendo uma nova definição do ponteiro __pfnDliNotifyHook2 inicializado para apontar para sua própria função recebe as notificações.
- ou -
Definindo o ponteiro __pfnDliNotifyHook2 para sua função de gancho antes de todas as chamadas para a DLL que o programa é atrasar o carregamento.
Se a notificação é dliStartProcessing, a função de gancho pode retornar:
NULL
O auxiliar padrão manipula o carregamento da DLL.Isso é útil a ser chamado apenas para fins Informativo.ponteiro de função
Ignore a manipulação de carregamento de atraso padrão.Isso permite que você fornecer seu próprio manipulador de carregamento.
Se a notificação é dliNotePreLoadLibrary, a função de gancho pode retornar:
0, se ele deseja apenas notificações informativas.
HMODULE para a DLL carregada, se a DLL do próprio carregado.
Se a notificação é dliNotePreGetProcAddress, a função de gancho pode retornar:
0, se ele deseja apenas notificações informativas.
Endereço da função importado, se a função de gancho obtém o próprio endereço.
Se a notificação é dliNoteEndProcessing, valor retornado da função de gancho será ignorado.
Se esse ponteiro é inicializado (diferente de zero), o auxiliar de carregamento de atraso invocará a função em determinados pontos de notificação durante sua execução.O ponteiro de função tem a seguinte definição:
// The "notify hook" gets called for every call to the
// delay load helper. This allows a user to hook every call and
// skip the delay load helper entirely.
//
// dliNotify == {
// dliStartProcessing |
// dliNotePreLoadLibrary |
// dliNotePreGetProc |
// dliNoteEndProcessing}
// on this call.
//
ExternC
PfnDliHook __pfnDliNotifyHook2;
// This is the failure hook, dliNotify = {dliFailLoadLib|dliFailGetProc}
ExternC
PfnDliHook __pfnDliFailureHook2;
As notificações de passar um DelayLoadInfo estrutura para a função de gancho juntamente com o valor de notificação.Esses dados são idênticos aos usados pela rotina de auxiliar atraso de carga.O valor de notificação será um dos valores definidos em Estrutura and constante definições.