Condividi tramite


Funzione SCardGetProviderIdA (winscard.h)

La funzione SCardGetProviderId restituisce l'identificatore (GUID) del provider di servizi primario per una determinata scheda.

Il chiamante fornisce il nome di una smart card (introdotta in precedenza nel sistema) e riceve l'identificatore registrato del GUID del provider di servizi primario, se presente.

Sintassi

LONG SCardGetProviderIdA(
  [in]  SCARDCONTEXT hContext,
  [in]  LPCSTR       szCard,
  [out] LPGUID       pguidProviderId
);

Parametri

[in] hContext

Handle che identifica il contesto di gestione risorse per la query. Il contesto di Resource Manager può essere impostato da una chiamata precedente a SCardEstablishContext. Questo parametro non può essere NULL.

[in] szCard

Nome della scheda definita nel sistema.

[out] pguidProviderId

Identificatore (GUID) del provider di servizi primario. Questo provider può essere attivato tramite COM e fornirà l'accesso ad altri servizi nella scheda.

Valore restituito

Questa funzione restituisce valori diversi a seconda che abbia esito positivo o negativo.

Codice restituito Descrizione
esito positivo
SCARD_S_SUCCESS.
errore
Codice di errore. Per altre informazioni, vedere valori restituiti della smart card.

Osservazioni

Questa funzione non viene reindirizzata, ma la chiamata alla funzione quando all'interno di una sessione desktop remoto non verrà generato un errore. Significa solo che il risultato sarà dal computer remoto anziché dal computer locale.

La funzione SCardGetProviderId è una funzione di query di database. Per altre informazioni su altre funzioni di query di database, vedere Funzioni di query del database smart card.

Esempi

Nell'esempio seguente viene illustrato come ottenere l'ID provider per la scheda specificata. L'esempio presuppone che hContext sia un handle valido ottenuto da una chiamata precedente alla funzione SCardEstablishContext e che "MyCardName" sia stato introdotto da una chiamata precedente alla funzione SCardIntroduceCardType.

GUID    guidProv;
LONG    lReturn;

lReturn = SCardGetProviderId(hContext, 
                             L"MyCardName",
                             &guidProv);
if ( SCARD_S_SUCCESS != lReturn )
    printf("Failed SCardGetProviderId - %x\n", lReturn);
else
{
    // Use the provider GUID as needed.
    // ...
}

Nota

L'intestazione winscard.h definisce SCardGetProviderId come alias che seleziona automaticamente la versione ANSI o Unicode di questa funzione in base alla definizione della costante del preprocessore UNICODE. La combinazione dell'utilizzo dell'alias indipendente dalla codifica con il codice non indipendente dalla codifica può causare mancate corrispondenze che generano errori di compilazione o di runtime. Per altre informazioni, vedere convenzioni di per i prototipi di funzioni.

Fabbisogno

Requisito Valore
client minimo supportato Windows XP [solo app desktop]
server minimo supportato Windows Server 2003 [solo app desktop]
piattaforma di destinazione Finestre
intestazione winscard.h
libreria Winscard.lib
dll Winscard.dll

Vedere anche

SCardEstablishContext

SCardListCards

SCardListInterfaces

SCardListReaderGroups

SCardListReaders