MagneticStripeReaderErrorOccured
This event occurs when there is a magnetic stripe reader (MSR) error, such as a scanning error.
Syntax
typedef struct _MSR_ERROR_EVENT
{
PosEventDataHeader Header;
MsrTrackErrorType Track1Status;
MsrTrackErrorType Track2Status;
MsrTrackErrorType Track3Status;
MsrTrackErrorType Track4Status;
UnifiedPosErrorSeverity Severity;
UnifiedPosErrorReason Reason;
UINT32 ExtendedReason;
MSR_DATA_RECEIVED CardData;
wchar_t Message[MSR_ERROR_MAX_MESSAGE_LENGTH];
} MSR_ERROR_EVENT, *PMSR_ERROR_EVENT;
The following table shows the memory layout of the data buffer for this event.
Memory value | Description |
---|---|
0x00000009 |
EventType = PosEventType:: MagneticStripeReaderErrorOccurred |
UINT32 |
DataLength = sizeof(PosEventDataHeader) + sizeof(MSR_ERROR_EVENT) |
32-bit MsrTrackErrorType |
Track1Status |
32-bit MsrTrackErrorType |
Track2Status |
32-bit MsrTrackErrorType |
Track3Status |
32-bit MsrTrackErrorType |
Track4Status |
32-bit UnifiedPosErrorSeverity |
Severity |
32-bit UnifiedPosErrorReason |
Reason |
UINT32 |
Extended Reason |
32-bit MsrCardType |
CardType |
unsigned char |
Track1EncryptedDataLength |
unsigned char |
Track2EncryptedDataLength |
unsigned char |
Track3EncryptedDataLength |
unsigned char |
Track4EncryptedDataLength |
unsigned char [MSR_TRACK_SIZE] |
Track1EncryptedDataLength bytes of encrypted track 1 data |
unsigned char [MSR_TRACK_SIZE] |
Track2EncryptedDataLength bytes of encrypted track 2 data |
unsigned char [MSR_TRACK_SIZE] |
Track3EncryptedDataLength bytes of encrypted track 3 data |
unsigned char [MSR_TRACK_SIZE] |
Track4EncryptedDataLength bytes of encrypted track 4 data |
unsigned char |
Track1MaskedDataLength |
unsigned char |
Track2MaskedDataLength |
unsigned char |
Track3MaskedDataLength |
unsigned char |
Track4MaskedDataLength |
unsigned char [MSR_TRACK_SIZE] |
Track1MaskedDataLength bytes of masked track 1 data |
unsigned char [MSR_TRACK_SIZE] |
Track2MaskedDataLength bytes of masked track 2 data |
unsigned char [MSR_TRACK_SIZE] |
Track3MaskedDataLength bytes of masked track 3 data |
unsigned char [MSR_TRACK_SIZE] |
Track4MaskedDataLength bytes of masked track 4 data |
unsigned char |
Track1DiscretionaryDataLength |
unsigned char |
Track2DiscretionaryDataLength |
unsigned char [MSR_TRACK_SIZE] |
Track1DiscretionaryDataLength bytes of discretionary track 1 data |
unsigned char [MSR_TRACK_SIZE] |
Track2DiscretionaryDataLength bytes of discretionary track 2 data |
unsigned char |
CardAuthenicationDataLength - length of the data after encryption, including padding |
unsigned char |
CardAuthenticationDataAbsoluteLength - length of data before encryption (may be needed to strip padding during decryption) |
unsigned char[MSR_ADDITIONAL_SECURITY_INFORMATION_DATA_SIZE] |
CardAuthenticationDataAbsoluteLength bytes of card authentication data |
unsigned char |
AdditionalSecurityInformationLength |
unsigned char[MSR_ADDITIONAL_SECURITY_INFORMATION_SIZE] |
AdditionalSecurityInformationLength bytes of additional security information |
wchar_T [MSR_ERROR_MAX_MESSAGE_LENGTH] |
Up to MSR_ERROR_MAX_MESSAGE_LENGTH wchar_t of error Null-terminated message text |
Remarks
If a scanning error occurs, and some scan data was obtained, the event data contains the partial scan data.
Requirements
Header: pointofservicedriverinterface.h