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


Функция SCardEstablishContext (winscard.h)

Функция SCardEstablishContext устанавливает контекст resource manager (область), в котором выполняются операции с базой данных.

Синтаксис

LONG SCardEstablishContext(
  [in]  DWORD          dwScope,
  [in]  LPCVOID        pvReserved1,
  [in]  LPCVOID        pvReserved2,
  [out] LPSCARDCONTEXT phContext
);

Параметры

[in] dwScope

Область контекста resource manager. Этот параметр может принимать одно из указанных ниже значений.

Значение Значение
SCARD_SCOPE_USER
Операции с базой данных выполняются в домене пользователя.
SCARD_SCOPE_SYSTEM
Операции с базой данных выполняются в пределах домена системы. Вызывающее приложение должно иметь соответствующие разрешения на доступ для любых действий с базой данных.

[in] pvReserved1

Зарезервировано для использования в будущем и должно иметь значение NULL. Этот параметр позволит приложению управления с соответствующими привилегиями действовать от имени другого пользователя.

[in] pvReserved2

Зарезервировано для использования в будущем и должно иметь значение NULL.

[out] phContext

Дескриптор для установленного контекста resource manager. Теперь этот дескриптор можно предоставить другим функциям, пытающимся выполнить работу в этом контексте.

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

Если функция выполняется успешно, функция возвращает SCARD_S_SUCCESS.

Если функция завершается сбоем, она возвращает код ошибки. Дополнительные сведения см. в разделе Возвращаемые значения смарт-карты.

Комментарии

Дескриптор контекста, возвращаемый SCardEstablishContext , может использоваться для запросов к базе данных и функций управления. Дополнительные сведения см. в разделах Функции запросов к базе данных смарт-карт и Функции управления базами данных смарт-карт.

Чтобы освободить установленный контекст resource manager, используйте SCardReleaseContext.

Если клиент пытается выполнить операцию интеллектуального карта в удаленном сеансе, например сеансе клиента, запущенном на сервере терминалов, а используемая операционная система не поддерживает перенаправление смарт-карта, эта функция возвращает ERROR_BROKEN_PIPE.

Примеры

В следующем примере устанавливается контекст диспетчера ресурсов.

SCARDCONTEXT    hSC;
LONG            lReturn;
// Establish the context.
lReturn = SCardEstablishContext(SCARD_SCOPE_USER,
                                NULL,
                                NULL,
                                &hSC);
if ( SCARD_S_SUCCESS != lReturn )
    printf("Failed SCardEstablishContext\n");
else
{
    // Use the context as needed. When done,
    // free the context by calling SCardReleaseContext.
    // ...
}

Требования

   
Минимальная версия клиента Windows XP [только классические приложения]
Минимальная версия сервера Windows Server 2003 [только классические приложения]
Целевая платформа Windows
Header winscard.h
Библиотека Winscard.lib
DLL Winscard.dll

См. также раздел

SCardReleaseContext