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


Функция EnumerateCLRs

Предоставляет механизм перечисления среды 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 имеет значение NULL, либо ppStringArrayOutpdwArrayLengthOut имеет значение NULL.

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

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

Замечания

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

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

Память для 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