Point of Service (POS)
Overview of the Point of Service (POS) device driver technology.
To develop Point of Service (POS) device drivers, you need these headers:
For the programming guide, see Point of Service (POS).
IOCTLs
Title | Description |
---|---|
IOCTL_POINT_OF_SERVICE_CHECK_HEALTH | This I/O control function checks the device health. |
IOCTL_POINT_OF_SERVICE_CLAIM_DEVICE | The I/O control function claims the device for exclusive access. |
IOCTL_POINT_OF_SERVICE_GET_DEVICE_BASICS | This I/O control function gets the type of device, version, and recommended buffer size as specified by the driver. |
IOCTL_POINT_OF_SERVICE_GET_PROPERTY | This I/O control function returns the value of the specified property from the device driver. |
IOCTL_POINT_OF_SERVICE_MSR_AUTHENTICATE_DEVICE | This IO control function authenticates the magnetic stripe reader (MSR). |
IOCTL_POINT_OF_SERVICE_MSR_DEAUTHENTICATE_DEVICE | This I/O control function deauthenticates the magnetic stripe reader (MSR). |
IOCTL_POINT_OF_SERVICE_MSR_RETRIEVE_DEVICE_AUTHENTICATION | This I/O control function retrieves the device authentication type. |
IOCTL_POINT_OF_SERVICE_MSR_UPDATE_KEY | This I/O control function sets a new encryption key. |
IOCTL_POINT_OF_SERVICE_RELEASE_DEVICE | This I/O control function is called when a client is ready to relinquish its claim on a device. |
IOCTL_POINT_OF_SERVICE_RESET_STATISTICS | This I/O control function resets the specified statistic's value to zero. |
IOCTL_POINT_OF_SERVICE_RETAIN_DEVICE | This I/O control function is used to keep a claim on a device when a client is notified that its claim on the device is being contested by another client. |
IOCTL_POINT_OF_SERVICE_RETRIEVE_STATISTICS | This I/O control function returns unified point of service (UPOS) standard information about a device such as its category, manufacturer, and firmware revision number. |
IOCTL_POINT_OF_SERVICE_SET_PROPERTY | This I/O control function sets the specified property on the device. |
IOCTL_POINT_OF_SERVICE_UPDATE_STATISTICS | This I/O control function sets the specified statistic to the value in the input buffer. |
Enumerations
Title | Description |
---|---|
BarcodeStatus | This enumeration indicates barcode scanner status values. |
BarcodeSymbology | This enumeration defines the barcode symbologies. |
BarcodeSymbologyDecodeLengthType | The BarcodeSymbologyDecodeLengthType enum describes values for the decode length which can be set to support a range, two discrete values, or be set to any length. |
DriverMagneticStripeReaderAuthenticationLevel | This enumeration defines the levels of magnetic stripe reader (MSR) authentication support. |
DriverUnifiedPosErrorReason | This enumeration indicates the reason for the error. |
DriverUnifiedPosErrorSeverity | This enumeration indicates the severity of the error. |
DriverUnifiedPosHealthCheckLevel | This enumeration indicates the type of health check to be performed when CheckHealthAsync is called on a POS device. |
DriverUnifiedPosPowerReportingType | This enumeration defines the type of power reporting that is supported by the device (for example, advanced, standard, and so on). |
DriverUnifiedPosPowerState | This enumeration is not implemented. |
MsrAuthenticationProtocolType | This enumeration defines magnetic stripe reader (MSR) authentication protocols. |
MsrCardType | This enumeration defines the kinds of magnetic stripe cards. |
MsrDataEncryption | This enumeration defines the kind of encryption algorithm supported by the magnetic stripe reader (MSR). |
MsrErrorReportingType | This enumeration defines the constants that indicate the error reporting type for the magnetic stripe reader (MSR). |
MsrStatusUpdateType | This enumeration defines the constants that indicate the magnetic stripe reader (MSR) status. |
MsrTrackErrorType | This enumeration defines the kinds of magnetic stripe reader track errors. |
MsrTrackIds | Defines the constants that represent the magnetic stripe reader (MSR) tracks. |
MstStatisticsEntryType | This enumeration defines the kinds of magnetic stripe reader statistics. |
POS_CX_EVENT_ATTRIBUTES | The POS_CX_EVENT_ATTRIBUTES describes the priority and access rights for the POS events coming from the device. The values are a combination of the values defined in POS_CX_EVENT_DEST and POS_CX_EVENT_PRIORITY. |
POS_CX_EVENT_DEST | The POS_CX_EVENT_DEST defines which applications receive this event. |
POS_CX_EVENT_PRIORITY | The POS_CX_EVENT_PRIORITY defines the importance of the event and the order it will be delivered to the client application. |
PosDeviceControlType | This enumeration defines values for the IOCTLs of the scanner driver and magnetic stripe reader (MSR) driver. |
PosDeviceType | This enumeration defines values used in the PosDeviceBasicsType structure to indicate the type of device (for instance, barcode scanner or magnetic stripe reader). |
PosEventType | This enumeration defines values used in the PosEventDataHeader structure to indicate the type of event that was raised. |
PosPropertyId | This enumeration defines the property identifiers for the properties that device drivers need to handle to be considered a barcode scanner or a magnetic strip reader (MSR). |
Functions
Title | Description |
---|---|
EVT_POS_CX_DEVICE_OWNERSHIP_CHANGE | The EVT_POS_CX_DEVICE_OWNERSHIP_CHANGE callback is called during the API claim ownership transition. The driver is expected to set the device back to a default state in this routine. |
EVT_POS_CX_DEVICE_REMOTE_CLAIM | The EVT_POS_CX_DEVICE_REMOTE_CLAIM callback is called when the device is transitioning from unclaimed to claimed and allows the driver to do additional work. |
EVT_POS_CX_DEVICE_REMOTE_RELEASE | The EVT_POS_CX_DEVICE_REMOTE_RELEASE callback is called whenever the device is released and left with no owner and allows the driver to do additional work. |
EVT_POS_CX_DEVICE_REMOTE_RETAIN | The EVT_POS_CX_DEVICE_REMOTE_RETAIN callback is called whenever PosCx attempts to hold onto a claim on a network device and allows the driver to do additional work. |
POS_CX_ATTRIBUTES_INIT | POS_CX_ATTRIBUTES_INIT initializes a POS_CX_ATTRIBUTE structure. |
PosCxClaimDevice | PosCxClaimDevice is called to claim a device for exclusive use. The caller should call PosCxReleaseDevice when the device is no longer needed. |
PosCxCleanPendingRequests | PosCxCleanPendingRequests is called to cancel all pending requests for a given caller, identified by the open instance. |
PosCxCleanupEvents | PosCxCleanupEvents is called to clean up all pending events for a given caller, identified by the open instance. |
PosCxClose | PosCxClose is called to delete an opened PosCx library instance. This function releases the device if the caller is the owner, and cancels pending requests. It should be called from the driver's EVT_WDF_FILE_CLOSE callback. |
PosCxGetDeviceInterfaceTag | PosCxGetDeviceInterfaceTag returns the device interface tag that is set in PosCxOpen. |
PosCxGetPendingEvent | PosCxGetPendingEvent is called either from the device read callback, or when a new event arrives. |
PosCxInit | PosCxInit is called to initialize the PosCx library's internal resources. The resources are tied to the device, and are released when the device goes away. |
PosCxIsDeviceOwner | PosCxIsDeviceOwner checks if the caller currently owns the claim on the device. |
PosCxIsPosApp | PosCxIsPosApp checks if the open instance is associated with a point-of-service application. |
PosCxMarkPosApp | PosCxMarkPosApp marks the open instance as associated or not associated with a point-of-service application. |
PosCxOpen | PosCxOpen is called to create an open PosCx library instance. This function initializes all resources it needs to manage a single open instance. It should be called from the driver's EVT_WDF_DEVICE_FILE_CREATE callback. |
PosCxPutPendingEvent | PosCxPutPendingEvent creates a new event object, copies the event data to the new event object, and tries to delegate it to the waiting caller. |
PosCxPutPendingEventMemory | PosCxPutPendingEventMemory tries to delegate a memory object containing the event data to a waiting caller. If the target caller does not have a read request waiting, the new event is added to the designated event queue (control or data). |
PosCxReleaseDevice | PosCxReleaseDevice is called to release a device that was previously claimed with PosCxClaimDevice. Once the device is released, the next pending claim requester is promoted. |
PosCxRemoteRequestRelease | PosCxRemoteRequestRelease is called whenever a remote device asks for the device to release. This initiates claim negotiation. |
PosCxRetainDevice | PosCxRetainDevice is called to extend the ownership of the device. |
Structures
Title | Description |
---|---|
BarcodeSymbologyAttributesData | The BarcodeSymbologyAttributesData structure contains the attribute information for a barcode symbology. |
MSR_AUTHENTICATE_DEVICE | This structure provides the authentication information used to authenticate a device. |
MSR_DATA_RECEIVED | This structure contains the data read from a swiped magnetic stripe card. |
MSR_DEAUTHENTICATE_DEVICE | This structure provides the information necessary to deauthenticate the device. |
MSR_ERROR_EVENT | This structure contains the error data that is passed to the MagneticStripeReaderErrorOccured event. |
MSR_RETRIEVE_DEVICE_AUTHENTICATION_DATA | This structure contains authentication information retrieved from the device. |
MSR_SUPPORTED_CARD_TYPES | This structure defines the types of magnetic stripe cards supported by the reader. |
MSR_UPDATE_KEY | This structure contains the information necessary to set a new encryption key. |
POS_CX_ATTRIBUTES | The POS_CX_ATTRIBUTES structure contains pointers to event callback functions implemented by the client driver. |
PosBarcodeScanDataTypeData | This structure describes a buffer of barcode symbologies supported by the driver. |
PosBarcodeScannerCapabilitiesType | This structure defines the type of scanner capabilities that a device supports such as whether the device supports statistics reporting and image preview. |
PosBarcodeScannerDataReceivedEventData | This structure contains the scanned data that is passed to the BarcodeScannerDataReceived event. |
PosBarcodeScannerErrorOccurredEventData | This structure contains the error data that is passed to the BarcodeScannerErrorOccurred event. |
PosDeviceBasicsType | This structure indicates the type of device, version, and recommended buffer size as specified by the driver. |
PosDeviceInformation | This structure provides device information as defined in and required by the Unified Point of Service (UPOS) standard. |
PosEventDataHeader | This structure describes the scanned image data that is passed to the BarcodeScannerImagePreviewReceived event. |
PosMagneticStripeReaderCapabilitiesType | This structure defines the kinds of magnetic stripe reader (MSR) capabilities that a device supports, such as whether the device supports track data masking. |
PosProfileType | This structure describes the number of profile strings in a buffer. |
PosStatisticsHeader | This structure defines Unified Point of Service (UPOS) standard information about a device. This structure is the header for an incoming statistic. |
PosStatusUpdatedEventData | This structure contains data passed to the StatusUpdated event. |
PosStringType | This structure represents a Point of Service (POS) unicode string with a length of DataLengthInBytes. |
PosValueStatisticsEntry | This structure contains the value of a statistic. |
Feedback
Loading feedback...