Compartilhar via


Método ICLRDebuggingLibraryProvider::ProvideLibrary

Obtém uma interface de retorno de chamada do provedor de biblioteca que permite que as bibliotecas de depuração específicas da versão do Common Language Runtime (CLR) sejam localizadas e carregadas sob demanda.

Sintaxe

HRESULT ProvideLibrary(
     [in] const WCHAR* pwszFileName,
     [in] DWORD dwTimestamp,
     [in] DWORD dwSizeOfImage,
     [out] HMODULE* hModule);

Parâmetros

pwszFilename
[in] O nome do módulo que está sendo solicitado.

dwTimestamp
[in] O carimbo de data/hora armazenado no cabeçalho do arquivo COFF dos arquivos PE.

dwSizeOfImage
[in] O campo SizeOfImage armazenado no cabeçalho de arquivo opcional COFF dos arquivos PE.

hModule
[out] O identificador para o módulo solicitado.

Valor Retornado

Esse método retorna os seguintes HRESULTs específicos, bem como erros HRESULT que indicam falha de método.

HRESULT Descrição
S_OK O método foi concluído com sucesso.

Exceções

Comentários

ProvideLibrary permite que o depurador forneça módulos necessários para depurar arquivos CLR específicos, como mscordbi.dll e mscordacwks.dll. Os identificadores do módulo devem permanecer válidos até que uma chamada para o método ICLRDebugging::CanUnloadNow indique que eles podem ser liberados, momento no qual é responsabilidade do chamador liberar os identificadores.

O depurador pode usar qualquer meio disponível para localizar ou adquirir o módulo de depuração.

Importante

Esse recurso permite que o chamador de API forneça módulos que contenham um código executável e possivelmente mal-intencionado. Como precaução de segurança, o chamador não deve usar ProvideLibrary para distribuir qualquer código que não esteja disposto a se executar.

Se um problema sério de segurança for descoberto em uma biblioteca já lançada, como mscordbi.dll ou mscordacwks.dll, o shim poderá ser corrigido para reconhecer as versões incorretas dos arquivos. Em seguida, o shim poderá emitir solicitações para as versões corrigidas dos arquivos e rejeitar as versões incorretas se elas forem fornecidas em resposta a qualquer solicitação. Isso só poderá ocorrer se o usuário tiver corrigido uma nova versão do shim. As versões sem correção permanecerão vulneráveis.

Requisitos

Plataformas: confira Requisitos do sistema.

Cabeçalho: CorDebug.idl, CorDebug.h

Biblioteca: CorGuids.lib

Versões do .NET Framework: disponíveis desde 4

Confira também