Export (0) Print
Expand All
Expand Minimize

SCardEstablishContext function

The SCardEstablishContext function establishes the resource manager context (the scope) within which database operations are performed.

Syntax


LONG WINAPI SCardEstablishContext(
  _In_   DWORD dwScope,
  _In_   LPCVOID pvReserved1,
  _In_   LPCVOID pvReserved2,
  _Out_  LPSCARDCONTEXT phContext
);

Parameters

dwScope [in]

Scope of the resource manager context. This parameter can be one of the following values.

ValueMeaning
SCARD_SCOPE_USER

Database operations are performed within the domain of the user.

SCARD_SCOPE_SYSTEM

Database operations are performed within the domain of the system. The calling application must have appropriate access permissions for any database actions.

 

pvReserved1 [in]

Reserved for future use and must be NULL. This parameter will allow a suitably privileged management application to act on behalf of another user.

pvReserved2 [in]

Reserved for future use and must be NULL.

phContext [out]

A handle to the established resource manager context. This handle can now be supplied to other functions attempting to do work within this context.

Return value

If the function succeeds, the function returns SCARD_S_SUCCESS.

If the function fails, it returns an error code. For more information, see Smart Card Return Values.

Remarks

The context handle returned by SCardEstablishContext can be used by database query and management functions. For more information, see Smart Card Database Query Functions and Smart Card Database Management Functions.

To release an established resource manager context, use SCardReleaseContext.

If the client attempts a smart card operation in a remote session, such as a client session running on a terminal server, and the operating system in use does not support smart card redirection, this function returns ERROR_BROKEN_PIPE.

Examples

The following example establishes a resource manager context.


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.
    // ...
}


Requirements

Minimum supported client

Windows XP [desktop apps only]

Minimum supported server

Windows Server 2003 [desktop apps only]

Header

Winscard.h

Library

Winscard.lib

DLL

Winscard.dll

See also

SCardReleaseContext

 

 

Community Additions

ADD
Show:
© 2014 Microsoft