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
[em] Identificador de processo do processo a partir do qual os CLRs carregados serão enumerados.
ppHandleArrayOut
[saídas] Ponteiro para uma matriz que contém identificadores de eventos que são usados para continuar uma inicialização CLR. Não é garantido que cada identificador na matriz seja válido. Se for válido, o identificador deve ser usado como o evento continue-startup para o tempo de execução correspondente localizado no mesmo índice de ppStringArrayOut
.
ppStringArrayOut
[saídas] Ponteiro para uma matriz de cadeias de caracteres que especificam caminhos completos para CLRs carregados no processo.
pdwArrayLengthOut
[saídas] Ponteiro para um DWORD que contém o comprimento do tamanho igual ppHandleArrayOut
e pdwArrayLengthOut
.
Valor devolvido
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
Ou ppHandleArrayOut
ppStringArrayOut
é nulo, ou pdwArrayLengthOut
é nulo.
E_OUTOFMEMORY
A função não consegue 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, ppStringArrayOut
, para CLRs carregados no processo, uma matriz de identificadores de eventos, ppHandleArrayOut
, que pode conter um evento de inicialização contínua para o CLR no mesmo índice, e o tamanho das matrizes, pdwArrayLengthOut
que especifica o número de CLRs que são carregados.
No sistema operacional Windows, debuggeePID
mapeia para um identificador de processo do sistema operacional.
A memória para ppHandleArrayOut
e ppStringArrayOut
são alocados por esta função. Para liberar a memória alocada, você deve chamar CloseCLREnumeration Function.
Esta função pode ser chamada com ambos os parâmetros de matriz definidos como nulos, a fim de retornar a contagem de CLRs no processo de destino. A partir dessa 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 suportados pelo .NET.
Cabeçalho: dbgshim.h
Biblioteca: dbgshim.dll, libdbgshim.so, libdbgshim.dylib
Versões do .NET: Disponível desde o .NET Core 2.1