MagneticStripeReaderDataReceived
이 이벤트는 성공적인 MSR(자기 줄무늬 판독기) 검사 이벤트 후에 발생합니다.
Syntax
typedef struct _MSR_DATA_RECEIVED {
MsrCardType CardType;
unsigned char Track1EncryptedDataLength;
unsigned char Track2EncryptedDataLength;
unsigned char Track3EncryptedDataLength;
unsigned char Track4EncryptedDataLength;
unsigned char Track1EncryptedData[MSR_TRACK_SIZE];
unsigned char Track2EncryptedData[MSR_TRACK_SIZE];
unsigned char Track3EncryptedData[MSR_TRACK_SIZE];
unsigned char Track4EncryptedData[MSR_TRACK_SIZE];
unsigned char Track1MaskedDataLength;
unsigned char Track2MaskedDataLength;
unsigned char Track3MaskedDataLength;
unsigned char Track4MaskedDataLength;
unsigned char Track1MaskedData[MSR_TRACK_SIZE];
unsigned char Track2MaskedData[MSR_TRACK_SIZE];
unsigned char Track3MaskedData[MSR_TRACK_SIZE];
unsigned char Track4MaskedData[MSR_TRACK_SIZE];
unsigned char Track1DiscretionaryDataLength;
unsigned char Track2DiscretionaryDataLength;
unsigned char Track1DiscretionaryData[MSR_TRACK_SIZE];
unsigned char Track2DiscretionaryData[MSR_TRACK_SIZE];
unsigned char CardAuthenicationDataLength; // Length of data after encryption, may include padding.
unsigned char CardAuthenticationDataAbsoluteLength; // Length of data before encryption, may be needed to strip padding on decryption.
unsigned char CardAuthenicationData[MSR_CARD_AUTHENTICATION_DATA_SIZE];
unsigned char AdditionalSecurityInformationLength;
unsigned char AdditionalSecurityInformation[MSR_ADDITIONAL_SECURITY_INFORMATION_SIZE];
} MSR_DATA_RECEIVED, *PMSR_DATA_RECEIVED;
다음 표에서는 이 이벤트에 대한 데이터 버퍼의 메모리 레이아웃을 보여줍니다.
메모리 값 | Description |
---|---|
0x00000008 | EventType = PosEventType:: MagneticStripeReaderDataReceived |
Uint32 | DataLength = sizeof(PosEventDataHeader) + sizeof(MSR_DATA_RECEIVED) |
32비트 MsrCardType | MsrCardType |
unsigned char | Track1EncryptedDataLength - MsrDataEncryption 이 MsrDataEncryption_None 경우 항상 0이 됩니다. |
unsigned char | Track2EncryptedDataLength - MsrDataEncryption 이 MsrDataEncryption_None 경우 항상 0이 됩니다. |
unsigned char | Track3EncryptedDataLength - MsrDataEncryption 이 MsrDataEncryption_None 경우 항상 0이 됩니다. |
unsigned char | Track4EncryptedDataLength - MsrDataEncryption 이 MsrDataEncryption_None 경우 항상 0이 됩니다. |
unsigned char [MSR_TRACK_SIZE] | Track1EncryptedDataLength 암호화된 트랙 1 데이터의 바이트 |
unsigned char [MSR_TRACK_SIZE] | 암호화된 트랙 2 데이터의 Track2EncryptedDataLength 바이트 |
unsigned char [MSR_TRACK_SIZE] | Track3EncryptedDataLength 암호화된 트랙 3 데이터의 바이트 |
unsigned char [MSR_TRACK_SIZE] | 암호화된 트랙 4 데이터의 Track4EncryptedDataLength 바이트 |
unsigned char | Track1MaskedDataLength |
unsigned char | Track2MaskedDataLength |
unsigned char | Track3MaskedDataLength |
unsigned char | Track4MaskedDataLength |
unsigned char [MSR_TRACK_SIZE] | 마스킹된 트랙 1 데이터의 Track1MaskedDataLength 바이트 |
unsigned char [MSR_TRACK_SIZE] | 마스킹된 트랙 2 데이터의 Track2MaskedDataLength 바이트 |
unsigned char [MSR_TRACK_SIZE] | 마스킹된 트랙 3 데이터의 Track3MaskedDataLength 바이트 |
unsigned char [MSR_TRACK_SIZE] | 마스킹된 트랙 4 데이터의 Track4MaskedDataLength 바이트 |
unsigned char | Track1DiscretionaryDataLength – MagneticStripeReaderIsDecodeDataEnabled 가 false이면 항상 0이 됩니다. |
unsigned char | Track2DiscretionaryDataLength – MagneticStripeReaderIsDecodeDataEnabled 가 false이면 항상 0이 됩니다. |
unsigned char [MSR_TRACK_SIZE] | Track1DiscretionaryDataLength 바이트의 임의 트랙 1 데이터 |
unsigned char [MSR_TRACK_SIZE] | Track2DiscretionaryDataLength 바이트의 임의 트랙 2 데이터 |
unsigned char | CardAuthenicationDataLength - 패딩을 포함하여 암호화된 데이터의 길이(바이트)입니다. |
unsigned char | CardAuthenticationDataAbsoluteLength - 암호화되지 않은 데이터의 길이(암호 해독 중에 패딩을 제거해야 할 수 있음) |
unsigned char[MSR_ADDITIONAL_SECURITY_INFORMATION_DATA_SIZE] | CardAuthenticationDataAbsoluteLength 바이트의 카드 인증 데이터 |
unsigned char | AdditionalSecurityInformationLength |
unsigned char[MSR_ADDITIONAL_SECURITY_INFORMATION_SIZE] | AdditionalSecurityInformationLength 바이트의 추가 보안 정보 |
요구 사항
헤더: pointofservicedriverinterface.h