PTS for PCSC
От: haltsys2005  
Дата: 27.07.04 11:21
Оценка:
я пишу приложение для работы с картами через PCSC ридер.
Мне нужно чтобы после Resetа на карту была подана последовательность PTS для установки протокола T=0 и желаемой скорости обмена=115200.Я пользуюсь стандартными функциями ScardEstablishContext,ScardConnect,ScardTransmit и.т.п..К сожалению,для себя я так и не уяснил из документации как это сделать.
Не могли бы Вы мне помочь в этом вопросе.
Re: PTS for PCSC
От: shilon Молдова  
Дата: 27.07.04 13:12
Оценка:
Здравствуйте, haltsys2005, Вы писали:

H>я пишу приложение для работы с картами через PCSC ридер.

H>Мне нужно чтобы после Resetа на карту была подана последовательность PTS для установки протокола T=0 и желаемой скорости обмена=115200.Я пользуюсь стандартными функциями ScardEstablishContext,ScardConnect,ScardTransmit и.т.п..К сожалению,для себя я так и не уяснил из документации как это сделать.
H>Не могли бы Вы мне помочь в этом вопросе.



Cкорость нельзя явно установить , это делает драйвер Кард-Считываетля . Т.е. Он устанавливает оптимальну скорость работы с считывателем,. А считыватель с картой опять же работает как ему вздумается. Иногда есть возможность установить скорость (Считыватель — карта) , иногда нет. Зависит от производителя Считывателя .
Я писал PCSC драйвера и могу это точно сказать.

Например вот так можно утсановить протокол передачи.

LPCSCARD_I0_REQUEST io = {SCARD_PROTOCOL_T0, 8};

lReturn = SCardTransmit(hCardHandle,
&io,
pbSend,
dwSend,
NULL,
pbRecv,
&dwRecv );
if ( SCARD_S_SUCCESS != lReturn )
{

}





Вот еще пример из MSDN

Example Code
SCARDHANDLE hCardHandle;
LONG lReturn;
DWORD dwAP;

// Connect to the reader.
// hContext is a SCARDCONTEXT previously set by
// a call to SCardEstablishContext.
lReturn = SCardConnect( hContext,
L"Rainbow Technologies SCR3531 0",
SCARD_SHARE_SHARED,
SCARD_PROTOCOL_T0 | SCARD_PROTOCOL_T1,
&hCardHandle,
&dwAP );
if ( SCARD_S_SUCCESS != lReturn )
{
printf("Failed SCardConnect\n");
exit(1); // Or other appropriate action.
}

// Use the connection; here we will merely display the
// active protocol.
switch ( dwAP )
{
case SCARD_PROTOCOL_T0:
printf("Active protocol T0\n");
break;

case SCARD_PROTOCOL_T1:
printf("Active protocol T1\n");
break;

case SCARD_PROTOCOL_UNDEFINED:
default:
printf("Active protocol unnegotiated or unknown\n");
break;
}

// Remember to disconnect (by calling SCardDisconnect).
// …
Re[2]: PTS for PCSC
От: haltsys2005  
Дата: 27.07.04 15:28
Оценка:
Здравствуйте, shilon, Вы писали:


S>Здравствуйте, haltsys2005, Вы писали:


H>>я пишу приложение для работы с картами через PCSC ридер.

H>>Мне нужно чтобы после Resetа на карту была подана последовательность PTS для установки протокола T=0 и желаемой скорости обмена=115200.Я пользуюсь стандартными функциями ScardEstablishContext,ScardConnect,ScardTransmit и.т.п..К сожалению,для себя я так и не уяснил из документации как это сделать.
H>>Не могли бы Вы мне помочь в этом вопросе.



S>Cкорость нельзя явно установить , это делает драйвер Кард-Считываетля . Т.е. Он устанавливает оптимальну скорость работы с считывателем,. А считыватель с картой опять же работает как ему вздумается. Иногда есть возможность установить скорость (Считыватель — карта) , иногда нет. Зависит от производителя Считывателя .

S>Я писал PCSC драйвера и могу это точно сказать.

S>Например вот так можно утсановить протокол передачи.


S>LPCSCARD_I0_REQUEST io = {SCARD_PROTOCOL_T0, 8};


S>lReturn = SCardTransmit(hCardHandle,

S> &io,
S> pbSend,
S> dwSend,
S> NULL,
S> pbRecv,
S> &dwRecv );
S>if ( SCARD_S_SUCCESS != lReturn )
S>{

S>}






S>Вот еще пример из MSDN


S>Example Code

S>SCARDHANDLE hCardHandle;
S>LONG lReturn;
S>DWORD dwAP;

S>// Connect to the reader.

S>// hContext is a SCARDCONTEXT previously set by
S>// a call to SCardEstablishContext.
S>lReturn = SCardConnect( hContext,
S> L"Rainbow Technologies SCR3531 0",
S> SCARD_SHARE_SHARED,
S> SCARD_PROTOCOL_T0 | SCARD_PROTOCOL_T1,
S> &hCardHandle,
S> &dwAP );
S>if ( SCARD_S_SUCCESS != lReturn )
S>{
S> printf("Failed SCardConnect\n");
S> exit(1); // Or other appropriate action.
S>}

S>// Use the connection; here we will merely display the

S>// active protocol.
S>switch ( dwAP )
S>{
S> case SCARD_PROTOCOL_T0:
S> printf("Active protocol T0\n");
S> break;

S> case SCARD_PROTOCOL_T1:

S> printf("Active protocol T1\n");
S> break;

S> case SCARD_PROTOCOL_UNDEFINED:

S> default:
S> printf("Active protocol unnegotiated or unknown\n");
S> break;
S>}

S>// Remember to disconnect (by calling SCardDisconnect).

S>// …
А каким параметром нужно играть чтобы изменить скорость?
Re[3]: overquoting!!!
От: Valerio Россия linkedin.com/in/boronin
Дата: 28.07.04 05:29
Оценка: +1
Здравствуйте, haltsys2005, Вы писали:
H>А каким параметром нужно играть чтобы изменить скорость?
а зачем столько оверквотить?!
... << Rsdn@Home 1.1.4 beta 1 >>
Valery A. Boronin, RSDN Team, linkedin.com\in\boronin
R&D Mgmt & Security. AppSec & SDL. Data Protection and Systems Programming. FDE, DLP, Incident Management. Windows Filesystems and Drivers.
Re[4]: overquoting!!!
От: Злость Россия  
Дата: 28.07.04 12:37
Оценка:
Здравствуйте, Valerio, Вы писали:

V>Здравствуйте, haltsys2005, Вы писали:

H>>А каким параметром нужно играть чтобы изменить скорость?
V>а зачем столько оверквотить?!

Затем — чтобы "дети подземелья" в руки мышку брали хоть иногда .
Правда, Ложь — мне все одно — я имею свое мнение.
Если функция недокументированна — это не значит, что ее не используют все ваши конкуренты в своих продуктах.
Любой строй переходный и отрицать это значит быть закостенелым идиотом.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.