Поделиться через


Перечисление функцийCLRs

Предоставляет механизм для перечисления сред CLR в процессе.

Синтаксис

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

Параметры

debuggeePID
[in] Идентификатор процесса, из которого будут перечислены загруженные среды CLR.

ppHandleArrayOut
[out] Указатель на массив, содержащий дескрипторы событий, которые используются для продолжения запуска среды CLR. Не все дескрипторы в массиве могут быть допустимыми. Если дескриптор допустимый, его следует использовать как событие продолжения запуска для соответствующей среды выполнения, находящейся по тому же индексу ppStringArrayOut.

ppStringArrayOut
[out] Указатель на массив строк, определяющих полные пути к средам CLR, загруженным в процессе.

pdwArrayLengthOut
[out] Указатель на значение DWORD, содержащее длину одинакового размера массивов ppHandleArrayOut и pdwArrayLengthOut.

Возвращаемое значение

S_OK
Количество сред CLR в процессе успешно определено, и соответствующие массивы дескрипторов и путей заполнены должным образом.

E_INVALIDARG
Либо ppHandleArrayOut, либо ppStringArrayOut имеет значение null, или pdwArrayLengthOut имеет значение null.

E_OUTOFMEMORY
Функции не удалось выделить достаточно памяти для массивов дескрипторов и путей.

E_FAIL (или другие E_ коды возврата)
Не удалось перечислить загруженные среды CLR.

Замечания

Для целевого процесса, который определяется идентификатором debuggeePID, функция возвращает массив путей ppStringArrayOut в среды CLR, загруженные в процесс; массив дескрипторов событий ppHandleArrayOut, который может содержать событие продолжения запуска для среды CLR с тем же индексом, и размер массивов pdwArrayLengthOut, который задает число загружаемых CLR.

В операционной системе Windows debuggeePID сопоставляется с идентификатором процесса ОС.

Память для ppHandleArrayOut и ppStringArrayOut выделяется этой функцией. Чтобы освободить выделенную память, необходимо вызвать функцию CloseCLREnumeration.

Эта функция может вызываться с параметрами обоих массивов, имеющими значение null, для возврата числа CLR в целевом процессе. Из этого числа вызывающий объект может определить размер буфера, который будет создан: (sizeof(HANDLE) * count) + (sizeof(LPWSTR) * count) + (sizeof(WCHAR*) * count * MAX_PATH).

Требования

Платформы: см . поддерживаемые операционные системы .NET.

Заголовок: dbgshim.h

Библиотека: dbgshim.dll, libdbgshim.so, libdbgshim.dylib

Версии .NET: доступны с .NET Core 2.1