µÚ31Ò³
CWA 15748-4:2008
5.7 WFS_CMD_IDC_READ_RAW_DATA
ÃèÊö
ÊäÈë²ÎÊý
Êä³ö²ÎÊý Õë¶Ôµç¶¯Ê½¶Á¿¨Æ÷£¬¶Á¿¨Æ÷¼ì²éÊÇ·ñÓп¨²åÈë¡£Èç¹ûÊǵϰ£¬ËùÓÐÖ¸¶¨µÄ´ÅµÀ¶¼±ØÐëÁ¢¼´¶ÁÈ¡¡£Èç¹ûÇëÇó¶ÁÈ¡ICоƬ£¬ICоƬ½«±»½Ó´¥¼Óµç²¢¸´Î»Ð¾Æ¬¡¢ATR£¨¸´Î»Ó¦´ð£©Êý¾Ý»á±»¶ÁÈ¡£¬µ±¸ÃÃüÁîÍê³Éºó£¬Ð¾Æ¬½«»áλÓÚ½Ó´¥Î»Ö᣸ÃÃüÁîÒ²¿ÉÓÃÓÚÒѽӴ¥Ð¾Æ¬µÄÀ临λ¡£ ¸ÃÃüÁîÖ»ÄÜÓÃÓÚÓû§¿¨£¬²»ÄÜÓÃÓÚÓÀ¾Ã½Ó´¥Ð¾Æ¬¡£ Èç¹ûûÓвåÈ뿨£¬°üÀ¨ËùÓÐÆäËüÖÖÀàµÄ¶Á¿¨Æ÷£¬ÔÚÄÚ£¬µÈ´ý²åÈë»òÕßË¢¿¨¡£¿¨²åÈëºó½«»á¶ÁÈ¡ËùÓÐÖ¸¶¨µÄ´ÅµÀÊý¾Ý¡£WFSExecuteÃüÁîÖÐËùÖ¸¶¨µÄ³¬Ê±Ê±¼ä¶Î
µ±¶Á¿¨Æ÷ÄÚû¿¨Ê±ÇÒ¶Á¿¨Æ÷×¼±¸ºÃ½ÓÊÕ¿¨£¬»á²úÉúWFS_EXEE_IDC_INSERTCARDʼþ¡£ ´ÅµÀµÄÊý¾Ý´ÓÆú¡£¿ªÊ¼»òĩβµÄ±ê¼Ç×Ö·û²»»á·µ»Øµ½Ó¦ÓóÌÐò¡£×ֶηָô·û·µ»Øµ½Ó¦ÓóÌÐò£¬ÇÒҲת»»5»ò7 bitµÄ×Ö·û¸ñʽת»»Îª8 bitµÄASCII¸ñʽ¡£5»ò7 bit´ÅµÀ×Ö·ûµÄУÑéλ±»Å׳É8 bit ASCIIÐÎʽ¡£
³ý´ËÖ®Í⣬¿ÉÒÔÇëÇóͨ¹ý°²È«Í£Ö¹ÓÐЧÊý¾ÝµÄ·µ»Ø¡£Èç¹ûÖ¸¶¨Ö»¶ÁУÑéÊý¾Ý»òÕßУÑéʧ°Ü£¬½«»á·µ»Ø
Ä£¿é£¨Ò²¾ÍÊÇMM£¬CIM86£©µÄУÑé¡£Èç¹ûУÑéʧ°Ü£¬²»»áWFS_ERR_IDC_SECURITYFAILÊä³ö²ÎÊýµÄ°²È«×ֶα»É趨ΪÏà¹ØµÄÖµ£¬°üÀ¨´íÎó£¬ÔÚÆäËüµÄËùÓÐÇé¿öÖУ¬½«»á·µ»ØWFS_IDC_SEC_HWERRORWFS_SUCCESS¡£ £¬Èç¹û¶Á¿¨Æ÷ÊÇËø¶¨WFS_IDC_CHIPdip¶Á¿¨Æ÷£¬µ±¶ÁȡоƬ¿¨Ê±£¬¶Á¿¨Æ÷»áËø¶¨¿¨£¬ÀýÈçÉèÖÃÁË
ÃüÁî¡£
£¨²Î¼ûÏÂÎÄ£©¡£¿¨»á±»Ò»Ö±Ëø¶¨£¬Ö±µ½ÊÕµ½WFS_CMD_IDC_EJECT_CARDLPWORD lpwReadData;
lpwReadData
Èç¹û lpwReadData Ö¸ÏòÁãÖµ£¬ÈκÎÒѱ»Í˳öµÄ¿¨¶¼»á·µ»Øµ½¶Á¿¨Æ÷Àµ«²»»á¶Á³öÊý¾Ý¡£·ñÔòlpwReadData Ö¸¶¨Òª¶ÁÈ¡µÄÊý¾Ý£¬¿ÉÒÔÊÇÈçϱêÖ¾µÄÒ»¸ö»ò¶à¸ö¡£
Value
ÒâÒå
WFS_IDC_TRACK1 ¶ÁÈ¡Track 1´ÅµÀÉϵÄÊý¾Ý¡£ WFS_IDC_TRACK2 ¶ÁÈ¡Track2´ÅµÀÉϵÄÊý¾Ý¡£ WFS_IDC_TRACK3 ¶ÁÈ¡Track 3´ÅµÀÉϵÄÊý¾Ý¡£ WFS_IDC_CHIP
¶ÁÈ¡ICоƬµÄÊý¾Ý¡£ WFS_IDC_SECURITY
Ö´Ðа²È«Ð£Ñé²Ù×÷¡£ WFS_IDC_FLUXINACTIVE
Èç¹ûIDC´Åͨ´«¸ÐÆ÷ÊÇ¿ÉÓõϰ£¬Ëü½«»áʧЧ£¬ÎªµÄÊÇÔÊÐí¶ÁÈ¡¿¨ÉϵÄICоƬÊý¾Ý£¬¶ø¸Ã¿¨Ã»ÓдŵÀ¡£ WFS_IDC_TRACK_WM ¶ÁÈ¡Èðµäˮӡ´ÅµÀ¡£ WFS_IDC_MEMORY_CHIP ¶ÁÈ¡¼ÇÒ俨¡£ WFS_IDC_FRONT_TRACK_1 ͨ¹ý×°ÔÚ¿¨Ç°±ßµÄ´ÅµÀ¶ÁÈ¡Track1µÄÊý¾Ý¡£ÔÚijЩ¹ú¼Ò£¬¸Ã´ÅµÀ±»³ÆÎªJIS II track¡£ WFS_IDC_FRONTIMAGE ¿¨µÄÕýÃæÍ¼Ïñ½«»áÒÔBMP¸ñʽ¶ÁÈ¡¡£ WFS_IDC_BACKIMAGE
¿¨µÄ±³ÃæÍ¼Ïñ½«»áÒÔBMP¸ñʽ¶ÁÈ¡¡£
LPWFSIDCCARDDATA *lppCardData;
µÚ32Ò³
CWA 15748-4:2008
lppCardData Ö¸ÕëÖ¸ÏòÒ»×éÒÔNULL½áβµÄ¿¨Êý¾Ý½á¹¹Êý×éÖ¸Õ룬Èç¹ûûÓÐÊý¾Ý£¬lppCardData ½«»áÊÇNULL¡£
typedef struct _wfs_idc_card_data
{ WORD wDataSource; WORD wStatus; ULONG ulDataLength; LPBYTE lpbData; WORD fwWriteMethod; } WFSIDCCARDDATA, *LPWFSIDCCARDDATA;
wDataSource
Ö¸¶¨¿¨Êý¾ÝµÄÀ´Ô´¿ÉÄÜÊÇÒÔϱêÖ¾Ö®Ò»: Öµ
WFS_IDC_TRACK1 WFS_IDC_TRACK2 WFS_IDC_TRACK3 WFS_IDC_CHIP WFS_IDC_SECURITY WFS_IDC_TRACK_WM WFS_IDC_MEMORY_CHIP WFS_IDC_FRONT_TRACK_1 WFS_IDC_FRONTIMAGE WFS_IDC_BACKIMAGE
ÒâÒå
lpbData °üº¬ÓÐ´Ó track 1¶ÁÈ¡µÄÊý¾Ý¡£ lpbData°üº¬ÓÐ´Ó track 2¶ÁÈ¡µÄÊý¾Ý¡£ lpbData°üº¬ÓÐ´Ó track 3¶ÁÈ¡µÄÊý¾Ý¡£ lpbData °üº¬ÓдÓоƬ¶ÁÈ¡µÄATRÊý¾Ý
lpbData °üº¬Óа²È«Ä£¿é·µ»ØµÄÖµ¡£ lpbData °üº¬ÓдÓÈðµäˮӡ´ÅµÀ¶ÁÈ¡µÄÊý¾Ý¡£ lpbData°üº¬´Ó¼ÇÒ俨¶ÁÈ¡µÄʶ±ðÊý¾Ý¡£ lpbData°üº¬ÓдÓfront track 1¶ÁÈ¡µÄÊý¾Ý¡£ÔÚijЩ¹ú¼Ò£¬¸Ã´ÅµÀÃûΪJIS II track¡£
lpbData°üº¬ÓÐBMP¿¨£¨¿¨µÄÕýÃæÍ¼Ïñ£©ÎļþµÄÍêȫ·¾¶ºÍÎļþÃû×Ö·û´®£¬ÒÔNULL½áÊø¡£
lpbData°üº¬ÓÐBMP¿¨£¨¿¨µÄ±³ÃæÍ¼Ïñ£©ÎļþµÄÍêȫ·¾¶ºÍÎļþÃû×Ö·û´®£¬ÒÔNULL½áÊø¡£
wStatus
¶ÁÈ¡¿¨Êý¾ÝµÄ״̬£¬¿ÉÄܵÄÖµ£º: Öµ
WFS_IDC_DATAOK WFS_IDC_DATAMISSING WFS_IDC_DATAINVALID
ÒâÒå
Êý¾ÝÕý³£¡£ ´ÅµÀ/оƬ/¼ÇÒ俨оƬÊý¾ÝΪ¿Õ°×¡£
´ÅµÀ/оƬ/¼ÇÒ俨оƬÊý¾ÝÎÞЧ¡£µ±lpbData±¨¸æ WFS_IDC_SEC_BADREADLEVEL»ò WFS_IDC_SEC_DATAINVALʱ£¬Õâͨ³£»á±»·µ»Ø¡£
´ÅµÀ/оƬ/¼ÇÒ俨оƬÊý¾ÝÌ«³¤¡£ ´ÅµÀ/оƬ/¼ÇÒ俨оƬÊý¾ÝÌ«¶Ì SP²»Ö§³Ö´ËÊý¾ÝÔ´¸ñʽ¡£
WFS_IDC_DATATOOLONG WFS_IDC_DATATOOSHORT WFS_IDC_DATASRCNOTSUPP
´íÎó´úÂë
µÚ33Ò³
CWA 15748-4:2008
WFS_IDC_DATASRCMISSING
¿¨Êý¾ÝÔ´¶ªÊ§£¬»òÓÉÓÚ²»Äܱ»¶ÁÈ¡¶ø²úÉúÓ²¼þ´íÎ󣬻òÕßÊÇÄ£¿éδ±»³õʼ»¯¡£ÀýÈ磺µ±ÒªÇó¶ÁÈ¡¼ÇÒ俨Êý¾Ýʱ£¬¶ø¿Í»§²åÈëÒ»¸ö²»´ø¼ÇÒäоƬµÄ´Å¿¨£¬½«»á·µ»ØÕâ¸ö״̬¡£µ±lpbData ±¨¸æ
WFS_IDC_SEC_NODATA, WFS_IDC_SEC_NOINIT »òWFS_IDC_SEC_HWERRORʱ£¬½«»á·µ»ØÕâ¸ö״̬¡£µ±Í¼Ïñ¶Á¿¨Æ÷ÓÉÓÚ״̬ÔÒò»òÕßʧ°Ü¶ø²»ÄÜ´´½¨BMPÎļþʱ£¬½«»á·µ»ØÕâ¸ö״̬¡£
ulDataLength
Ö¸¶¨lpbDataµÄ³¤¶È¡£
lpbData
Ö¸Ïò´Ó¹ìµÀ/оƬ¶ÁÈ¡µÄÊý¾Ý£¬°²È«Ä£¿é·µ»ØµÄÖµ»òÕßÒÔNULL½áβµÄ×Ö·û´®°üº¬BMPͼÏñÎļþµÄȫ·¾¶ºÍÎļþÃû¡£ °²È«Ä£¿é¿É·µ»ØÒÔÏÂÖµ£º Value
ÒâÒå
WFS_IDC_SEC_READLEVEL1 °²È«Êý¾Ý¿É¶ÁµÈ¼¶ÊÇ1. WFS_IDC_SEC_READLEVEL2 °²È«Êý¾Ý¿É¶ÁµÈ¼¶ÊÇ2. WFS_IDC_SEC_READLEVEL3 °²È«Êý¾Ý¿É¶ÁµÈ¼¶ÊÇ3. WFS_IDC_SEC_READLEVEL4 °²È«Êý¾Ý¿É¶ÁµÈ¼¶ÊÇ4. WFS_IDC_SEC_READLEVEL5 °²È«Êý¾Ý¿É¶ÁµÈ¼¶ÊÇ5. WFS_IDC_SEC_BADREADLEVEL Ëù¶ÁÈ¡µÄ°²È«Êý¾ÝÖÊÁ¿²»¿É½ÓÊÜ WFS_IDC_SEC_NODATA ¿¨ÉÏûÓа²È«Êý¾Ý¡£WFS_IDC_SEC_DATAINVAL ÑéÖ¤°²È«Êý¾ÝºÍ´ÅµÀÉϵÄÌØÊâÊý¾Ýδ³É ¹¦¡£.
WFS_IDC_SEC_HWERROR ÓÉÓÚÓ²¼þ´íÎó¶ø²»ÄÜʹÓð²È«Ä£¿é¡£ WFS_IDC_SEC_NOINIT
²»ÄÜʹÓð²È«Ä£Ê½ÓÉÓÚËüûÓб»¼¤»î£¨ÀýÈçCIM keyûÓб»×°È룩¡£
¼ÇÒ俨·µ»ØµÄÊý¾ÝÖеÚÒ»¸öWORD×ÖÄÚÈÝÊÇÓ뿨µÄͨÐÅÐÒ飬ÔÚ´ËWORD×ÖºóÃæµÄÊÇÆäËüµÄʵ¼ÊÊý¾Ý¡£¶Ô¿ÉÓõļÇÒ俨ÐÒéµÄÃèÊö²Î¼ûWFS_INF_IDC_CAPABILITIESÖеÄlpwMemoryChipProtocols¡£
fwWriteMethod ¸ÃÃüÁîºöÂÔ¡£
³ýÁË[Ref. 1]Öж¨ÒåµÄÆÕͨµÄ´íÎóÍâ, ¸ÃÃüÁîÒ²»á³öÏÖÒÔÏ´íÎó´úÂ룺 Value
ÒâÒå
WFS_ERR_IDC_MEDIAJAM ¿¨±»¼Ðס£¬ÐèÒª²Ù×÷ÈËÔ±µÄ¸ÉÔ¤¡£ WFS_ERR_IDC_SHUTTERFAIL
ÓÉÓÚ²Ù×÷ʧÎó»òÕßÓ²¼þ¹ÊÕÏ£¬¶øÎ´Äܳɹ¦´ò¿ª»ò¹Ø±Õ¿¨¿Ú£¬ÐèÒª²Ù×÷ÈËÔ±µÄ¸ÉÔ¤¡£
WFS_ERR_IDC_NOMEDIA
ÔÚÍê³É¶ÁÈ¡²Ù×÷֮ǰ£¬¿¨±»ÒƳý£¨²úÉúÁËʼþ
WFS_EXEE_IDC_MEDIAINSERTED£©¡£Õë¶Ôµç¶¯Ê½¶Á¿¨Æ÷À´Ëµ£¬¶ÁÈ¡²Ù×÷ÊÇʧЧµÄ£»Ò²¾ÍÊÇ˵±ØÐë·¢³öÁíÍâÒ»¸öÃüÁîʹµÃ¶Á¿¨Æ÷¶ÁÈ¡Êý¾Ý¡£
µÚ34Ò³ CWA 15748-4:2008
WFS_ERR_IDC_INVALIDMEDIA WFS_ERR_IDC_CARDTOOSHORT WFS_ERR_IDC_CARDTOOLONG
ʼþ
WFS_ERR_IDC_SECURITYFAIL
ûÓз¢ÏִŵÀ»òICоƬ£»²å¿¨»òË¢¿¨µÄ·½Ê½´íÎó¡£
²åÈëµÄ¿¨Ì«¶Ì¡£µ±³öÏÖÕâÖÖ´íÎóʱ£¬¿¨ÒÀ¾ÉÔÚ¿¨¿ÚλÖá£
²åÈëµÄ¿¨Ì«³¤¡£µ±³öÏÖÕâÖÖ´íÎóʱ£¬¿¨ÒÀ¾ÉÔÚ¿¨¿ÚλÖá£
°²È«Ä£Ê½Ã»Äܳɹ¦¶ÁÈ¡¿¨µÄ°²È«±êʶ¡£
³ýÁË[Ref. 1]Öж¨ÒåµÄÆÕͨµÄʼþÍâ, ¸ÃÃüÁîÒ²»á³öÏÖÒÔÏÂʼþ£º Value
WFS_EXEE_IDC_MEDIAINSERTED WFS_SRVE_IDC_MEDIAREMOVED WFS_EXEE_IDC_INVALIDMEDIA
WFS_EXEE_IDC_INSERTCARD ×¢ÊÍ
ÎÞ¡£
ÒâÒå
µ±·¢ÏÖ¶Á¿¨Æ÷ÄÚÓп¨²åÈëʱ£¬»á²úÉú¸Ãʼþ£¬Ìáǰ¾¯¸æÓ¦ÓóÌÐòÒ»¸ö¿¨µÄ²åÈ룬ÔÊÐíËüÒÆ³ýÒ»¸öÓû§ÌáʾºÍ/»òÔÚ¶Á¿¨Ê±½øÐÐÆäËüµÄ´¦Àí¡£.
ÔÚ¶Á¿¨²Ù×÷»¹Ã»Íê³Éʱ£¬¾ÍÒÆ³ýÁË¿¨£¬»á²úÉú¸Ãʼþ¡£
Óû§ÊÔͼÒÔ´íÎóµÄ·½Ïò²åÈ뿨¡£¶Á¿¨Æ÷ûÓнÓÊܸÿ¨¡£¶Á¿¨Æ÷ÒÀ¾Éʱ¿Ì×¼±¸×ŽÓÊÜÒÔÕýÈ··½Ê½²åÈëµÄ¿¨¡£
¶Á¿¨Æ÷×¼±¸½ÓÊÜÀ´×ÔÓû§µÄ¿¨¡£
µÚ35Ò³
CWA 15748-4:2008
5.8 WFS_CMD_IDC_WRITE_RAW_DATA
ÃèÊö Õë¶Ôµç¶¯Ê½¶Á¿¨Æ÷£¬¶Á¿¨Æ÷¼ì²éÊÇ·ñÒѾ²åÈëÁË¿¨¡£Èç¹ûÊǵϰ£¬Êý¾Ý½«±»Ð´Èë´ÅµÀ¡£
ÊäÈë²ÎÊý
Êä³ö²ÎÊý Èç¹ûûÓвåÈ뿨£¬µÈ´ý²åÈë»òÕßË¢¿¨¡£¿¨²åÈëºó½«»á½«Êý¾ÝдÈëËùÓÐÖ¸¶¨µÄ´ÅµÀ¡£°üÀ¨ËùÓÐÆäËüÖÖÀàµÄ¶Á¿¨Æ÷£¬ÔÚWFSExecuteÃüÁîÖÐËùÖ¸¶¨µÄ³¬Ê±Ê±¼ä¶ÎÄÚ£¬
µ±¶Á¿¨Æ÷ÄÚû¿¨Ê±ÇÒ¶Á¿¨Æ÷×¼±¸ºÃ½ÓÊÕ¿¨£¬»á²úÉúWFS_EXEE_IDC_INSERTCARDʼþ¡£
Ó¦ÓóÌÐò±ØÐ뽫´ÅµÀÊý¾Ýת»»³ÉASCII±àÂëÇÒ²»ÄÜÓÐÆðʼ×Ö·û£¬SPת»»´ËÊý¾Ý£¨²Î¼ûWFS_CMD_IDC_READ_RAW_DATAWFS_ERR_INVALID_DATA´íÎó¡£
£©¡£Èç¹û´«µÄÊý¾ÝÌ«³¤µÄ»°£¬»á·µ»Ø¸Ã´¦ÀíÖ®ºóÊÇÊý¾ÝУÑé¡£
Èç¹ûÔÚдÊý¾ÝʱµçÔ´¶ÏµçµÄ»°£¬²Ù×÷µÄ½á¹û½«»áÒÀ¾Ý³§É̵IJ»Í¬¶ø²»Í¬£¬²¢²»Äܱ£Ö¤Ð´¿¨³É¹¦¡£
LPWFSIDCCARDDATA *lppCardData; Ö¸ÏòNULL½áÊøµÄÖ¸ÕëÊý×é:
typedef struct _wfs_idc_card_data
{ WORD wDataSource; WORD wStatus; ULONG ulDataLength; LPBYTE lpbData; WORD fwWriteMethod; } WFSIDCCARDDATA, *LPWFSIDCCARDDATA;
wDataSource
Ö¸¶¨ÒªÐ´ÈëµÄÊý¾Ý£¬ÊÇÒÔÏÂÖµÖ®Ò»£º Value
ÒâÒå
WFS_IDC_TRACK1 lpbData°üº¬Ð´Èë track 1µÄÊý¾Ý¡£ WFS_IDC_TRACK2 lpbData°üº¬Ð´Èë track 2µÄÊý¾Ý¡£ WFS_IDC_TRACK3
lpbData°üº¬Ð´Èë track 3µÄÊý¾Ý¡£.
WFS_IDC_FRONT_TRACK_1
lpbData °üº¬Ð´Èë front track 1µÄÊý¾Ý¡£ÔÚijЩ¹ú¼Ò£¬¸Ã´ÅµÀ±»³Æ×öJIS II track.
wStatus
ÔڸòÎÊýÖиÃÃüÁî±»ºöÂÔ¡£ ulDataLength
Ö¸¶¨lpbDataµÄ³¤¶È¡£ lpbData
Ö¸ÏòдÈë´ÅµÀµÄÊý¾Ý¡£
fwWriteMethod
Ö¸¶¨Ó¦¸ÃдÈë¸ß´Å´ÅµÀ»¹ÊǵʹŴŵÀ
Value ÒâÒå WFS_IDC_LOCO дÈëµÍ½ÃÍç(´Å)Á¦´ÅµÀ¡£ WFS_IDC_HICO дÈë¸ß½ÃÍç(´Å)Á¦´ÅµÀ¡£
WFS_IDC_AUTO SP¾ö¶¨ÊÇдÈë¸ß´Å´ÅµÀ»¹ÊǵʹŴŵÀ¡£
ÎÞ
°Ù¶ÈËÑË÷¡°77cn¡±»ò¡°Ãâ·Ñ·¶ÎÄÍø¡±¼´¿ÉÕÒµ½±¾Õ¾Ãâ·ÑÔĶÁÈ«²¿·¶ÎÄ¡£Êղر¾Õ¾·½±ãÏ´ÎÔĶÁ£¬Ãâ·Ñ·¶ÎÄÍø£¬Ìṩ¾µäС˵×ÛºÏÎÄ¿âWOSA£¯XFS 3.10 ÖÐÎİæ 04(7)ÔÚÏßÈ«ÎÄÔĶÁ¡£
Ïà¹ØÍÆ¼ö£º