Compartilhar via


Injecting a DLL into a Process Space

Windows Mobile SupportedWindows Embedded CE Supported

9/8/2008

Há momentos quando um DLL deve ser automaticamente adicionado a um espaço processo para executar um exigido ação, de exemplo, uma depuração ferramenta que rastreia algumas ações.

Para todas as plataformas

Se a codificar origem nem a capacidade compilar a codificar está disponível, você é limitados em tipos de depuração você pode executar. O kernel pode carregar um DLL em qualquer espaço processo.

Para habilitar esse processo, adicionar o nome do DLL para a seguinte chave Registro:

HKEY_LOCAL_MACHINE\SYSTEM\KERNEL
   "InjectDLL" = REG_MULTI_SZ : "MyDLL1.DLL","MyDLL2.DLL",

O tipo de dados é REG_MULTI_SZ ou um matriz de seqüências, que pode lista mais de um DLL. O nome da DLL pode conter a caminho completo e nome arquivo ou apenas o nome arquivo.

Aplicativos que instalar as DLLs para ser injetado em um processo deve anexar ou remover somente suas DLL específicas a partir de Registro.

Para Windows incorporado CE

Quando um processo é criado e todas as DLLs implicitamente-vinculado são carregadas, o kernel carrega cada DLL na InjectDLL. Falha ao carregar o DLL Não evitar o aplicativo de inicialização. Um DLL pode falhar ao carregar se o DLL retorna FALSE em DllMain ou se o aplicativo é de confiança e não o DLL sendo carregado. As DLLs pode verificar em DLLMain Para determinar qual processo estiverem sendo carregados em por chamado GetModuleFileName. Os valores precisar transmitir são (NULL, & nome do arquivo, nTamanho).

Para Mobile Windows

Quando um processo é criado e todas as DLLs implicitamente-vinculado são carregadas, o kernel carrega cada DLL na InjectDLL. Falha ao carregar o DLL Não evitar o aplicativo de inicialização. Um DLL pode falhar ao carregar se o DLL retorna FALSE DllMain ou se o aplicativo é privilegiado e a DLL carregados não é. As DLLs pode verificar em DLLMain Para determinar qual processo estiverem sendo carregados em por chamado GetModuleFileName. Os valores precisar transmitir são (NULL, & nome do arquivo, nTamanho).

See Also

Concepts

Loader