Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Предоставляет механизм перечисления среды 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