Compartir a través de


MÉTODO ISCardISO7816::ManageChannel

[El método ManageChannel está disponible para su uso en los sistemas operativos especificados en la sección Requisitos. No está disponible para su uso en Windows Server 2003 con Service Pack 1 (SP1) y versiones posteriores, Windows Vista, Windows Server 2008 y versiones posteriores del sistema operativo. Los módulos de tarjeta inteligente proporcionan una funcionalidad similar.]

El método ManageChannel construye un comando de unidad de datos de protocolo de aplicación (APDU) que abre y cierra canales lógicos.

La función open abre un nuevo canal lógico distinto del básico. Se proporcionan opciones para que la tarjeta asigne un número de canal lógico o para que el número de canal lógico se proporcione a la tarjeta.

La función close cierra explícitamente un canal lógico distinto del básico. Después del cierre correcto, el canal lógico estará disponible para su reutilización.

Sintaxis

HRESULT ManageChannel(
  [in]      BYTE       byChannelState,
  [in]      BYTE       byChannel,
  [in, out] LPSCARDCMD *ppCmd
);

Parámetros

byChannelState [in]

El bit b8 de P1 se usa para indicar la función abierta o la función close; Si b8 es 0, MANAGE CHANNEL abrirá un canal lógico y, si b8 es 1, MANAGE CHANNEL cerrará un canal lógico:

P1 = '00' para abrir

P1 = '80' para cerrar

Otros valores son RFU

byChannel [in]

Para la función abierta (P1 = '00'), los bits b1 y b2 de P2 se usan para codificar el número de canal lógico de la misma manera que en el byte de clase, los demás bits de P2 son RFU.

Cuando b1 y b2 de P2 son NULL, la tarjeta asignará un número de canal lógico que se devolverá en bits b1 y b2 del campo de datos.

Cuando b1 y/o b2 de P2 no son NULL, codifican un número de canal lógico distinto del básico; a continuación, la tarjeta abrirá el número de canal lógico asignado externamente.

ppCmd [in, out]

En la entrada, un puntero a un objeto de interfaz ISCardCmd o NULL.

A cambio, se rellena con el comando APDU construido por esta operación. Si ppCmd se estableció en NULL, se crea internamente un objeto ISCardCmd de tarjeta inteligente y se devuelve mediante el puntero ppCmd.

Valor devuelto

El método devuelve uno de los siguientes valores posibles.

Código devuelto Descripción
S_OK
Operación completada correctamente.
E_INVALIDARG
Parámetro no válido.
E_POINTER
Se pasó un puntero incorrecto.
E_OUTOFMEMORY
Memoria insuficiente

 

Comentarios

Cuando la función abierta se realiza correctamente desde el canal lógico básico, mf se seleccionará implícitamente como df actual y el estado de seguridad del nuevo canal lógico debe ser el mismo que el canal lógico básico después de ATR. El estado de seguridad del nuevo canal lógico debe ser independiente del de cualquier otro canal lógico.

Cuando la función abierta se realiza correctamente desde un canal lógico, que no es el básico, el DF actual del canal lógico que emitió el comando se seleccionará como df actual. Además, el estado de seguridad del nuevo canal lógico debe ser el mismo que el estado de seguridad del canal lógico desde el que se realizó la función abierta.

Después de una función de cierre correcta, se pierde el estado de seguridad relacionado con este canal lógico.

Para obtener una lista de todos los métodos proporcionados por esta interfaz, vea ISCardISO7816.

Además de los códigos de error COM enumerados anteriormente, esta interfaz puede devolver un código de error de tarjeta inteligente si se llamó a una función de tarjeta inteligente para completar la solicitud. Para obtener más información, consulte Valores devueltos de tarjeta inteligente.

Requisitos

Requisito Value
Cliente mínimo compatible
Windows XP [solo aplicaciones de escritorio]
Servidor mínimo compatible
Windows Server 2003 [solo aplicaciones de escritorio]
Fin de compatibilidad de cliente
Windows XP
Fin de compatibilidad de servidor
Windows Server 2003
Encabezado
Scardssp.h
Biblioteca de tipos
Scardsrv.tlb
Archivo DLL
Scardssp.dll
IID
IID_ISCardISO7816 se define como 53B6AA68-3F56-11D0-916B-00AA00C18068

Consulte también

ISCardISO7816