locked
smart card minidriver version check inconsistency RRS feed

  • Question

  • Hi,

    in smart card specification i said, that you should accept structures with greater version than you are now supporting and set the version to version you support.

    on the other hand in requirements is said that structure with version greater than current must be rejected ERROR_REVISION_MISMATCH error.

    which one is correct?

    >>>>>>>>spec (sc-minidriver_specs_V7.docx - 2.5 Mandatory Version Checking)

    If the requested version is less than the minimum version that the card minidriver supports, CardAcquireContext must return a revision mismatch error (see the following sample code).
    If the requested version is at least as great as the minimum version, the card minidriver should set the dwVersion member to the highest version that it can support that is less than or equal to the requested version.
    Note:  If the version that the card minidriver returns is not suitable for the purposes of the calling application, it is the responsibility of the calling application to handle this appropriately.
    After dwVersion is set in the call to CardAcquireContext, assume that it will not be changed by either the caller or the card minidriver while it is in the same context.
    Other Structure Version Checks
    For other versioned structures and other card minidriver API methods, version handling is the same as for the CARD_DATA structure, with one exception. If the API method is called with a structure that contains a dwVersion member that is set to 0, this must be treated as a dwVersion value of 1.

    >>>>>>>>spec

    >>>>>>>>req (sc-minidriver_certreqs_v61.doc)

    e.g.

    CMR_381
    CardGetContainerInfo should fail when the version of the CONTAINER_INFO structure is not supported by the Card Minidriver
    It is expected to fail with an ERROR_REVISION_MISMATCH error.

    >>>>>>>>req 

     

    thanks for explanation

    Friday, October 8, 2010 9:25 AM