Перечисление функций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