Compartilhar via


Função EnumerateCLRs

Fornece um mecanismo para enumerar os CLRs em um processo.

Sintaxe

HRESULT EnumerateCLRs (
    [in]  DWORD      debuggeePID,
    [out] HANDLE**   ppHandleArrayOut,
    [out] LPWSTR**   ppStringArrayOut,
    [out] DWORD*     pdwArrayLengthOut
);

Parâmetros

debuggeePID
[in] Identificador de processo do processo do qual clrs carregados serão enumerados.

ppHandleArrayOut
[out] Ponteiro para uma matriz que contém identificadores de evento que são usados para continuar uma inicialização CLR. Cada identificador na matriz não tem garantia de ser válido. Se for válido, o identificador deverá ser usado como o evento de continuação de inicialização para o runtime correspondente localizado no mesmo índice de ppStringArrayOut.

ppStringArrayOut
[out] Ponteiro para uma matriz de cadeias de caracteres que especificam caminhos completos para CLRs carregados no processo.

pdwArrayLengthOut
[out] Ponteiro para um DWORD que contém o comprimento do tamanho igual e ppHandleArrayOutpdwArrayLengthOut.

Valor de retorno

S_OK
O número de CLRs no processo foi determinado com êxito e as matrizes de identificador e caminho correspondentes foram preenchidas corretamente.

E_INVALIDARG
ppHandleArrayOut Ou ppStringArrayOut é nulo ou pdwArrayLengthOut é nulo.

E_OUTOFMEMORY
A função não pode alocar memória suficiente para as matrizes de identificador e caminho.

E_FAIL (ou outros E_ códigos de retorno)
Não é possível enumerar CLRs carregados.

Observações

Para um processo de destino identificado por debuggeePID, a função retorna uma matriz de caminhos, ppStringArrayOutpara CLRs carregados no processo; uma matriz de identificadores de evento, ppHandleArrayOutque pode conter um evento de inicialização contínua para o CLR no mesmo índice; e o tamanho das matrizes, pdwArrayLengthOutque especifica o número de CLRs carregados.

No sistema operacional Windows, debuggeePID mapeia para um identificador de processo do sistema operacional.

A memória para ppHandleArrayOut e ppStringArrayOut são alocadas por essa função. Para liberar a memória alocada, você deve chamar a Função CloseCLREnumeration.

Essa função pode ser chamada com ambos os parâmetros de matriz definidos como nulos para retornar a contagem de CLRs no processo de destino. Nessa contagem, um chamador pode inferir o tamanho do buffer que será criado: (sizeof(HANDLE) * count) + (sizeof(LPWSTR) * count) + (sizeof(WCHAR*) * count * MAX_PATH).

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