Compartilhar via


Método ICLRDebuggingLibraryProvider3::P rovideWindowsLibrary

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

Sintaxe

HRESULT ProvideWindowsLibrary (
     [in] const WCHAR* pwszFileName,
     [in] const WCHAR* pwszRuntimeModule,
     [in] LIBRARY_PROVIDER_INDEX_TYPE indexType,
     [in] DWORD dwTimestamp,
     [in] DWORD dwSizeOfImage,
     [out] LPWSTR* ppResolvedModulePath);

Parâmetros

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

pwszRuntimeModule
[in] O caminho do módulo de runtime ou de arquivo único.

indexType
[in] O tipo de informação de índice (dwTimestamp/dwSizeOfImage) fornecido. Veja LIBRARY_PROVIDER_INDEX_TYPE enumeração.

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

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

ppResolvedModulePath
[out] Esse é um caminho encerrado nulo para a dll do módulo. No Windows, ele deve ser alocado com CoTaskMemAlloc. No Unix, ele deve ser alocado com malloc. Falha deixa-o intocado. Veja a observação de segurança abaixo!

Valor de retorno

Esse método retorna o HRESULT específico a seguir, bem como erros HRESULT que indicam falha de método.

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

Observações

ProvideWindowsLibrary permite que o depurador forneça módulos necessários para depurar arquivos CLR específicos, como mscordbi.dll e mscordacwks.dll.

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 da API forneça módulos que contêm código executável e possivelmente mal-intencionado. Como precaução de segurança, o chamador não deve usar ProvideWindowsLibrary para distribuir qualquer código que não esteja disposto a executar sozinho.

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. 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 o patch para uma nova versão do shim. As versões sem correspondência permanecerão vulneráveis.

Requisitos

Plataformas: Consulte sistemas operacionais com suporte do .NET.

Cabeçalho: dbgshim.h

Biblioteca: dbgshim.dll, libdbgshim.so, libdbgshim.dylib

Versões do .NET: Disponível desde o .NET Core 2.1