Бөлісу құралы:


Функция CorBindToRuntime

Позволяет неуправляемые узлы загружать среду CLR в процесс.

Эта функция не рекомендуется использовать в .NET Framework 4.

Синтаксис

HRESULT CorBindToRuntime (
    [in]  LPCWSTR     pwszVersion,
    [in]  LPCWSTR     pwszBuildFlavor,
    [in]  REFCLSID    rclsid,
    [in]  REFIID      riid,
    [out] LPVOID FAR  *ppv
);

Параметры

pwszVersion [in] Строка, описывающая версию среды CLR, которую требуется загрузить.

Номер версии в .NET Framework состоит из четырех частей, разделенных точками: major.minor.build.version. Строка, передаваемая как pwszVersion должна начинаться с символа "v", за которым следует первые три части номера версии (например, "v1.0.1529").

Некоторые версии среды CLR устанавливаются с помощью инструкции политики, которая указывает совместимость с предыдущими версиями среды CLR. По умолчанию схим запуска вычисляется pwszVersion по операторам политики и загружает последнюю версию среды выполнения, совместимую с запрошенной версией. Узел может принудительно пропустить оценку политики и загрузить точную версию, указанную в pwszVersionSTARTUP_LOADER_SAFEMODEflags параметре, как описано ниже.

Если вызывающий объект задает значение NULL, pwszVersionзагружается последняя версия среды выполнения. Передача null не позволяет узлу контролировать, какую версию среды выполнения загружается. Хотя этот подход может быть подходящим в некоторых сценариях, настоятельно рекомендуется предоставить узлу определенную версию для загрузки.

pwszBuildFlavor [in] Строка, указывающая, следует ли загружать сервер или сборку рабочей станции среды CLR. Допустимые значения — svr и wks. Сборка сервера оптимизирована для использования нескольких процессоров для сборок мусора, а сборка рабочей станции оптимизирована для клиентских приложений, работающих на одном процессоре.

Если pwszBuildFlavor задано значение NULL, сборка рабочей станции загружается. При запуске на одном процессоре сборка рабочей станции всегда загружается, даже если pwszBuildFlavor задано svrзначение . Однако если pwszBuildFlavor задано svr значение и задана параллельная сборка мусора (см. описание flags параметра), сборка сервера загружается.

rclsid [in] Coclass CLSID , реализующий интерфейс ICorRuntimeHost или ICLRRuntimeHost . Поддерживаемые значения : CLSID_CorRuntimeHost или CLSID_CLRRuntimeHost.

riid [in] Запрошенный IID интерфейс из rclsid. Поддерживаемые значения : IID_ICorRuntimeHost или IID_ICLRRuntimeHost.

ppv [out] Возвращаемый указатель riidинтерфейса на .

Замечания

Если pwszVersion указывает версию среды выполнения, которая не существует, CorBindToRuntimeEx возвращает значение HRESULT CLR_E_SHIM_RUNTIMELOAD.

CorBindToRuntimeEx и CorBindToRuntime выполнение той же операции, но CorBindToRuntimeEx функция позволяет задать флаги для указания поведения среды CLR.

Контекст выполнения и поток удостоверения Windows

В версии 1 среды CLR WindowsIdentity объект не проходит через асинхронные точки, такие как новые потоки, пулы потоков или обратные вызовы таймера. В среде CLR ExecutionContext версии 2.0 объект упаковывает некоторые сведения о выполняемом потоке и передает его через любую асинхронную точку, но не через границы домена приложения. Аналогичным образом WindowsIdentity объект также передается по любой асинхронной точке. Таким образом, текущее олицетворение в потоке, если таковой имеется, также передается.

Поток можно изменить двумя способами:

  1. Изменив параметры для подавления ExecutionContext потока на основе каждого потока (смSuppressFlow. раздел и SuppressFlowSuppressFlowWindowsIdentity методы).

  2. Изменив режим по умолчанию процесса на режим совместимости версии 1, где WindowsIdentity объект не проходит через асинхронную точку независимо от ExecutionContext параметров текущего потока. Изменение режима по умолчанию зависит от того, используется ли управляемый исполняемый файл или неуправляемый интерфейс размещения для загрузки среды CLR:

    1. Для управляемых исполняемых файлов необходимо задать enabled атрибут устаревшего< элементаImpersonationPolicy>true.

    2. Для неуправляемых интерфейсов размещения установите STARTUP_LEGACY_IMPERSONATION флаг в параметре flags при вызове CorBindToRuntimeEx функции.

    Режим совместимости версии 1 применяется ко всему процессу и ко всем доменам приложений в процессе.

Требования

Платформы: см. раздел Требования к системе.

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

Библиотека: MSCorEE.dll

версии платформа .NET Framework: Доступно с версии 1.0

См. также