<?xml version="1.0"?>
<doc>
    <assembly>
        <name>PCSC</name>
    </assembly>
    <members>
        <member name="T:PCSC.CardHandle">
            <inheritdoc />
        </member>
        <member name="P:PCSC.CardHandle.ReaderName">
            <inheritdoc />
        </member>
        <member name="P:PCSC.CardHandle.Handle">
            <inheritdoc />
        </member>
        <member name="P:PCSC.CardHandle.Mode">
            <inheritdoc />
        </member>
        <member name="P:PCSC.CardHandle.Protocol">
            <inheritdoc />
        </member>
        <member name="P:PCSC.CardHandle.IsConnected">
            <inheritdoc />
        </member>
        <member name="M:PCSC.CardHandle.Finalize">
            <inheritdoc />
        </member>
        <member name="M:PCSC.CardHandle.#ctor(PCSC.ISCardContext)">
            <summary>
            Creates a new <see cref="T:PCSC.CardHandle"/> instance
            </summary>
            <param name="context">The application context to the PC/SC Resource Manager that will be used for <see cref="M:PCSC.CardHandle.Connect(System.String,PCSC.SCardShareMode,PCSC.SCardProtocol)"/> and <see cref="M:PCSC.CardHandle.Disconnect(PCSC.SCardReaderDisposition)"/></param>
        </member>
        <member name="M:PCSC.CardHandle.Connect(System.String,PCSC.SCardShareMode,PCSC.SCardProtocol)">
            <inheritdoc />
        </member>
        <member name="M:PCSC.CardHandle.Reconnect(PCSC.SCardShareMode,PCSC.SCardProtocol,PCSC.SCardReaderDisposition)">
            <inheritdoc />
        </member>
        <member name="M:PCSC.CardHandle.Disconnect(PCSC.SCardReaderDisposition)">
            <inheritdoc />
        </member>
        <member name="M:PCSC.CardHandle.Dispose">
            <inheritdoc />
        </member>
        <member name="M:PCSC.CardHandle.Dispose(System.Boolean)">
            <summary>
            Dispose this instance
            </summary>
            <param name="disposing"><c>true</c> if the user called <see cref="M:PCSC.CardHandle.Dispose"/> otherwise <c>false</c> if called from GC finalizer.</param>
        </member>
        <member name="T:PCSC.CardReader">
            <inheritdoc />
        </member>
        <member name="P:PCSC.CardReader.CardHandle">
            <inheritdoc />
        </member>
        <member name="P:PCSC.CardReader.Name">
            <inheritdoc />
        </member>
        <member name="P:PCSC.CardReader.Mode">
            <inheritdoc />
        </member>
        <member name="P:PCSC.CardReader.Protocol">
            <inheritdoc />
        </member>
        <member name="P:PCSC.CardReader.IsConnected">
            <inheritdoc />
        </member>
        <member name="M:PCSC.CardReader.Finalize">
            <inheritdoc />
        </member>
        <member name="M:PCSC.CardReader.#ctor(PCSC.ICardHandle)">
            <summary>
            Creates a <see cref="T:PCSC.CardReader"/> instance
            </summary>
            <param name="cardHandle">A connected card/reader handle</param>
        </member>
        <member name="M:PCSC.CardReader.#ctor(PCSC.ICardHandle,System.Boolean)">
            <summary>
            Creates a <see cref="T:PCSC.CardReader"/> instance
            </summary>
            <param name="cardHandle">A connected card/reader handle</param>
            <param name="isOwner">If set to <c>true</c>, the reader will destroy the <paramref name="cardHandle"/> on <see cref="M:PCSC.CardReader.Dispose"/></param>
        </member>
        <member name="M:PCSC.CardReader.Reconnect(PCSC.SCardShareMode,PCSC.SCardProtocol,PCSC.SCardReaderDisposition)">
            <inheritdoc />
        </member>
        <member name="M:PCSC.CardReader.Transaction(PCSC.SCardReaderDisposition)">
            <inheritdoc />
        </member>
        <member name="M:PCSC.CardReader.Transmit(System.Byte[],System.Byte[])">
            <inheritdoc />
        </member>
        <member name="M:PCSC.CardReader.Transmit(PCSC.SCardPCI,System.Byte[],System.Byte[])">
            <inheritdoc />
        </member>
        <member name="M:PCSC.CardReader.Transmit(System.IntPtr,System.Byte[],System.Byte[])">
            <inheritdoc />
        </member>
        <member name="M:PCSC.CardReader.Transmit(System.IntPtr,System.Byte[],System.Int32,PCSC.SCardPCI,System.Byte[],System.Int32)">
            <inheritdoc />
        </member>
        <member name="M:PCSC.CardReader.Transmit(PCSC.SCardPCI,System.Byte[],System.Int32,System.Byte[],System.Int32)">
            <inheritdoc />
        </member>
        <member name="M:PCSC.CardReader.Transmit(PCSC.SCardPCI,System.Byte[],System.Int32,PCSC.SCardPCI,System.Byte[],System.Int32)">
            <inheritdoc />
        </member>
        <member name="M:PCSC.CardReader.Transmit(System.IntPtr,System.Byte[],System.Int32,System.Byte[],System.Int32)">
            <inheritdoc />
        </member>
        <member name="M:PCSC.CardReader.Transmit(System.IntPtr,System.Byte[],System.Int32,System.IntPtr,System.Byte[],System.Int32)">
            <inheritdoc />
        </member>
        <member name="M:PCSC.CardReader.Control(System.IntPtr,System.Byte[],System.Byte[])">
            <inheritdoc />
        </member>
        <member name="M:PCSC.CardReader.Control(System.IntPtr,System.Byte[],System.Int32,System.Byte[],System.Int32)">
            <inheritdoc />
        </member>
        <member name="M:PCSC.CardReader.GetStatus">
            <inheritdoc />
        </member>
        <member name="M:PCSC.CardReader.GetAttrib(System.IntPtr,System.Byte[])">
            <inheritdoc />
        </member>
        <member name="M:PCSC.CardReader.GetAttrib(PCSC.SCardAttribute,System.Byte[],System.Int32)">
            <inheritdoc />
        </member>
        <member name="M:PCSC.CardReader.GetAttrib(PCSC.SCardAttribute,System.Byte[])">
            <inheritdoc />
        </member>
        <member name="M:PCSC.CardReader.GetAttrib(System.IntPtr,System.Byte[],System.Int32)">
            <inheritdoc />
        </member>
        <member name="M:PCSC.CardReader.GetAttrib(PCSC.SCardAttribute)">
            <inheritdoc />
        </member>
        <member name="M:PCSC.CardReader.GetAttrib(System.IntPtr)">
            <inheritdoc />
        </member>
        <member name="M:PCSC.CardReader.SetAttrib(System.IntPtr,System.Byte[])">
            <inheritdoc />
        </member>
        <member name="M:PCSC.CardReader.SetAttrib(PCSC.SCardAttribute,System.Byte[],System.Int32)">
            <inheritdoc />
        </member>
        <member name="M:PCSC.CardReader.SetAttrib(PCSC.SCardAttribute,System.Byte[])">
            <inheritdoc />
        </member>
        <member name="M:PCSC.CardReader.SetAttrib(System.IntPtr,System.Byte[],System.Int32)">
            <inheritdoc />
        </member>
        <member name="M:PCSC.CardReader.Disconnect(PCSC.SCardReaderDisposition)">
            <inheritdoc />
        </member>
        <member name="M:PCSC.CardReader.Dispose">
            <inheritdoc />
        </member>
        <member name="M:PCSC.CardReader.Dispose(System.Boolean)">
            <summary>
            Dispose this instance
            </summary>
            <param name="disposing">If <c>true</c>, all managed resources will be disposed.</param>
        </member>
        <member name="T:PCSC.ContextFactory">
            <summary>
            Smart card context factory
            </summary>
        </member>
        <member name="P:PCSC.ContextFactory.Instance">
            <summary>
            Default factory instance.
            </summary>
        </member>
        <member name="M:PCSC.ContextFactory.Establish(PCSC.SCardScope)">
            <summary>
            Create and establish a new smart card context.
            </summary>
            <param name="scope">Scope of the establishment. This can either be a local or remote connection.</param>
            <returns>A new established smart card context</returns>
        </member>
        <member name="T:PCSC.Exceptions.CommunicationErrorException">
            <summary>
            A communication error occurred.
            </summary>
        </member>
        <member name="M:PCSC.Exceptions.CommunicationErrorException.#ctor(PCSC.SCardError)">
            <summary>
            Creates a new instance.
            </summary>
            <param name="serr">Error number.</param>
        </member>
        <member name="M:PCSC.Exceptions.CommunicationErrorException.#ctor(PCSC.SCardError,System.String)">
            <summary>
            Creates a new instance.
            </summary>
            <param name="serr">System's error code</param>
            <param name="message">Error message</param>
        </member>
        <member name="M:PCSC.Exceptions.CommunicationErrorException.#ctor(PCSC.SCardError,System.String,System.Exception)">
            <summary>
            Creates a new instance.
            </summary>
            <param name="serr">System's error code</param>
            <param name="message">Error message</param>
            <param name="innerException">Inner exception.</param>
        </member>
        <member name="M:PCSC.Exceptions.CommunicationErrorException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Serialization constructor
            </summary>
            <param name="info"></param>
            <param name="context"></param>
        </member>
        <member name="T:PCSC.Exceptions.InsufficientBufferException">
            <summary>
            A supplied buffer is insufficient.
            </summary>
        </member>
        <member name="M:PCSC.Exceptions.InsufficientBufferException.#ctor(PCSC.SCardError)">
            <summary>
            Initializes a new instance of the <see cref="T:PCSC.Exceptions.InsufficientBufferException"/> class.
            </summary>
            <param name="serr">System's error code</param>
        </member>
        <member name="M:PCSC.Exceptions.InsufficientBufferException.#ctor(PCSC.SCardError,System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:PCSC.Exceptions.InsufficientBufferException"/> class.
            </summary>
            <param name="serr">System's error code</param>
            <param name="message">An error message text.</param>
        </member>
        <member name="M:PCSC.Exceptions.InsufficientBufferException.#ctor(PCSC.SCardError,System.String,System.Exception)">
            <summary>
            Initializes a new instance of the <see cref="T:PCSC.Exceptions.InsufficientBufferException"/> class.
            </summary>
            <param name="serr">System's error code</param>
            <param name="message">An error message text.</param>
            <param name="innerException">The inner exception.</param>
        </member>
        <member name="M:PCSC.Exceptions.InsufficientBufferException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Serialization constructor
            </summary>
            <param name="info"></param>
            <param name="context"></param>
        </member>
        <member name="T:PCSC.Exceptions.InternalErrorException">
            <summary>
            An internal error occurred.
            </summary>
        </member>
        <member name="M:PCSC.Exceptions.InternalErrorException.#ctor(PCSC.SCardError)">
            <summary>
            Creates a new instance.
            </summary>
            <param name="serr">System's error code</param>
        </member>
        <member name="M:PCSC.Exceptions.InternalErrorException.#ctor(PCSC.SCardError,System.String)">
            <summary>
            Creates a new instance.
            </summary>
            <param name="serr">System's error code</param>
            <param name="message">Error message</param>
        </member>
        <member name="M:PCSC.Exceptions.InternalErrorException.#ctor(PCSC.SCardError,System.String,System.Exception)">
            <summary>
            Creates a new instance.
            </summary>
            <param name="serr">System's error code</param>
            <param name="message">Error message</param>
            <param name="innerException">Inner exception</param>
        </member>
        <member name="M:PCSC.Exceptions.InternalErrorException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Serialization constructor
            </summary>
            <param name="info"></param>
            <param name="context"></param>
        </member>
        <member name="T:PCSC.Exceptions.InvalidContextException">
            <summary>
            Invalid PC/SC context exception.
            </summary>
        </member>
        <member name="M:PCSC.Exceptions.InvalidContextException.#ctor(PCSC.SCardError)">
            <summary>
            Creates a new instance.
            </summary>
            <param name="serr">System's error code</param>
        </member>
        <member name="M:PCSC.Exceptions.InvalidContextException.#ctor(PCSC.SCardError,System.String)">
            <summary>
            Creates a new instance.
            </summary>
            <param name="serr">System's error code</param>
            <param name="message">Error message</param>
        </member>
        <member name="M:PCSC.Exceptions.InvalidContextException.#ctor(PCSC.SCardError,System.String,System.Exception)">
            <summary>
            Creates a new instance.
            </summary>
            <param name="serr">System's error code</param>
            <param name="message">Error message</param>
            <param name="innerException">Inner exception</param>
        </member>
        <member name="M:PCSC.Exceptions.InvalidContextException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Serialization constructor
            </summary>
            <param name="info"></param>
            <param name="context"></param>
        </member>
        <member name="T:PCSC.Exceptions.InvalidParameterException">
            <summary>
            One or more arguments contain invalid parameters.
            </summary>
        </member>
        <member name="M:PCSC.Exceptions.InvalidParameterException.#ctor(PCSC.SCardError)">
            <summary>
            Creates a new instance.
            </summary>
            <param name="serr">System's error code</param>
        </member>
        <member name="M:PCSC.Exceptions.InvalidParameterException.#ctor(PCSC.SCardError,System.String)">
            <summary>
            Creates a new instance.
            </summary>
            <param name="serr">System's error code</param>
            <param name="message">Error message</param>
        </member>
        <member name="M:PCSC.Exceptions.InvalidParameterException.#ctor(PCSC.SCardError,System.String,System.Exception)">
            <summary>
            Creates a new instance.
            </summary>
            <param name="serr">System's error code</param>
            <param name="message">Error message</param>
            <param name="innerException">Inner exception</param>
        </member>
        <member name="M:PCSC.Exceptions.InvalidParameterException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Serialization constructor
            </summary>
            <param name="info"></param>
            <param name="context"></param>
        </member>
        <member name="T:PCSC.Exceptions.InvalidProtocolException">
            <summary>
            An invalid protocol has been requested.
            </summary>
        </member>
        <member name="M:PCSC.Exceptions.InvalidProtocolException.#ctor(PCSC.SCardError)">
            <summary>
            Initializes a new instance of the <see cref="T:PCSC.Exceptions.InvalidProtocolException"/> class.
            </summary>
            <param name="serr">System's error code</param>
        </member>
        <member name="M:PCSC.Exceptions.InvalidProtocolException.#ctor(PCSC.SCardError,System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:PCSC.Exceptions.InvalidProtocolException"/> class.
            </summary>
            <param name="serr">System's error code</param>
            <param name="message">An error message text.</param>
        </member>
        <member name="M:PCSC.Exceptions.InvalidProtocolException.#ctor(PCSC.SCardError,System.String,System.Exception)">
            <summary>
            Initializes a new instance of the <see cref="T:PCSC.Exceptions.InvalidProtocolException"/> class.
            </summary>
            <param name="serr">System's error code</param>
            <param name="message">An error message text.</param>
            <param name="innerException">The inner exception.</param>
        </member>
        <member name="M:PCSC.Exceptions.InvalidProtocolException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Serialization constructor
            </summary>
            <param name="info"></param>
            <param name="context"></param>
        </member>
        <member name="T:PCSC.Exceptions.InvalidScopeTypeException">
            <summary>
            Invalid PC/SC scope exception.
            </summary>
        </member>
        <member name="M:PCSC.Exceptions.InvalidScopeTypeException.#ctor(PCSC.SCardError)">
            <summary>
            Initializes a new instance of the <see cref="T:PCSC.Exceptions.InvalidScopeTypeException"/> class.
            </summary>
            <param name="serr">System's error code</param>
        </member>
        <member name="M:PCSC.Exceptions.InvalidScopeTypeException.#ctor(PCSC.SCardError,System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:PCSC.Exceptions.InvalidScopeTypeException"/> class.
            </summary>
            <param name="serr">System's error code</param>
            <param name="message">An error message text.</param>
        </member>
        <member name="M:PCSC.Exceptions.InvalidScopeTypeException.#ctor(PCSC.SCardError,System.String,System.Exception)">
            <summary>
            Initializes a new instance of the <see cref="T:PCSC.Exceptions.InvalidScopeTypeException"/> class.
            </summary>
            <param name="serr">System's error code</param>
            <param name="message">An error message text.</param>
            <param name="innerException">The inner exception.</param>
        </member>
        <member name="M:PCSC.Exceptions.InvalidScopeTypeException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Serialization constructor
            </summary>
            <param name="info"></param>
            <param name="context"></param>
        </member>
        <member name="T:PCSC.Exceptions.InvalidShareModeException">
            <summary>
            The share mode is invalid.
            </summary>
        </member>
        <member name="M:PCSC.Exceptions.InvalidShareModeException.#ctor(PCSC.SCardError)">
            <summary>
            Initializes a new instance of the <see cref="T:PCSC.Exceptions.InvalidShareModeException"/> class.
            </summary>
            <param name="serr">System's error code</param>
        </member>
        <member name="M:PCSC.Exceptions.InvalidShareModeException.#ctor(PCSC.SCardError,System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:PCSC.Exceptions.InvalidShareModeException"/> class.
            </summary>
            <param name="serr">System's error code</param>
            <param name="message">An error message text.</param>
        </member>
        <member name="M:PCSC.Exceptions.InvalidShareModeException.#ctor(PCSC.SCardError,System.String,System.Exception)">
            <summary>
            Initializes a new instance of the <see cref="T:PCSC.Exceptions.InvalidShareModeException"/> class.
            </summary>
            <param name="serr">System's error code</param>
            <param name="message">An error message text.</param>
            <param name="innerException">The inner exception.</param>
        </member>
        <member name="M:PCSC.Exceptions.InvalidShareModeException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Serialization constructor
            </summary>
            <param name="info"></param>
            <param name="context"></param>
        </member>
        <member name="T:PCSC.Exceptions.InvalidValueException">
            <summary>
            One or more arguments contain invalid values.
            </summary>
        </member>
        <member name="M:PCSC.Exceptions.InvalidValueException.#ctor(PCSC.SCardError)">
            <summary>
            Initializes a new instance of the <see cref="T:PCSC.Exceptions.InvalidValueException"/> class.
            </summary>
            <param name="serr">System's error code</param>
        </member>
        <member name="M:PCSC.Exceptions.InvalidValueException.#ctor(PCSC.SCardError,System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:PCSC.Exceptions.InvalidValueException"/> class.
            </summary>
            <param name="serr">System's error code</param>
            <param name="message">An error message text.</param>
        </member>
        <member name="M:PCSC.Exceptions.InvalidValueException.#ctor(PCSC.SCardError,System.String,System.Exception)">
            <summary>
            Initializes a new instance of the <see cref="T:PCSC.Exceptions.InvalidValueException"/> class.
            </summary>
            <param name="serr">System's error code</param>
            <param name="message">An error message text.</param>
            <param name="innerException">The inner exception.</param>
        </member>
        <member name="M:PCSC.Exceptions.InvalidValueException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Serialization constructor
            </summary>
            <param name="info"></param>
            <param name="context"></param>
        </member>
        <member name="T:PCSC.Exceptions.NoReadersAvailableException">
            <summary>
            The group does not contain any reader
            </summary>
        </member>
        <member name="M:PCSC.Exceptions.NoReadersAvailableException.#ctor(PCSC.SCardError)">
            <summary>
            Initializes a new instance of the <see cref="T:PCSC.Exceptions.NoReadersAvailableException"/> class.
            </summary>
            <param name="serr">System's error code</param>
        </member>
        <member name="M:PCSC.Exceptions.NoReadersAvailableException.#ctor(PCSC.SCardError,System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:PCSC.Exceptions.NoReadersAvailableException"/> class.
            </summary>
            <param name="serr">System's error code</param>
            <param name="message">An error message text.</param>
        </member>
        <member name="M:PCSC.Exceptions.NoReadersAvailableException.#ctor(PCSC.SCardError,System.String,System.Exception)">
            <summary>
            Initializes a new instance of the <see cref="T:PCSC.Exceptions.NoReadersAvailableException"/> class.
            </summary>
            <param name="serr">System's error code</param>
            <param name="message">An error message text.</param>
            <param name="innerException">The inner exception.</param>
        </member>
        <member name="M:PCSC.Exceptions.NoReadersAvailableException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Serialization constructor
            </summary>
            <param name="info"></param>
            <param name="context"></param>
        </member>
        <member name="T:PCSC.Exceptions.NoServiceException">
            <summary>
            The PC/SC service is not running.
            </summary>
        </member>
        <member name="M:PCSC.Exceptions.NoServiceException.#ctor(PCSC.SCardError)">
            <summary>
            Initializes a new instance of the <see cref="T:PCSC.Exceptions.NoServiceException"/> class.
            </summary>
            <param name="serr">System's error code</param>
        </member>
        <member name="M:PCSC.Exceptions.NoServiceException.#ctor(PCSC.SCardError,System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:PCSC.Exceptions.NoServiceException"/> class.
            </summary>
            <param name="serr">System's error code</param>
            <param name="message">An error message text.</param>
        </member>
        <member name="M:PCSC.Exceptions.NoServiceException.#ctor(PCSC.SCardError,System.String,System.Exception)">
            <summary>
            Initializes a new instance of the <see cref="T:PCSC.Exceptions.NoServiceException"/> class.
            </summary>
            <param name="serr">System's error code</param>
            <param name="message">An error message text.</param>
            <param name="innerException">The inner exception.</param>
        </member>
        <member name="M:PCSC.Exceptions.NoServiceException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Serialization constructor
            </summary>
            <param name="info"></param>
            <param name="context"></param>
        </member>
        <member name="T:PCSC.Exceptions.NoSmartcardException">
            <summary>
            No smart card is currently inserted.
            </summary>
        </member>
        <member name="M:PCSC.Exceptions.NoSmartcardException.#ctor(PCSC.SCardError)">
            <summary>
            Initializes a new instance of the <see cref="T:PCSC.Exceptions.NoSmartcardException"/> class.
            </summary>
            <param name="serr">System's error code</param>
        </member>
        <member name="M:PCSC.Exceptions.NoSmartcardException.#ctor(PCSC.SCardError,System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:PCSC.Exceptions.NoSmartcardException"/> class.
            </summary>
            <param name="serr">System's error code</param>
            <param name="message">An error message text.</param>
        </member>
        <member name="M:PCSC.Exceptions.NoSmartcardException.#ctor(PCSC.SCardError,System.String,System.Exception)">
            <summary>
            Initializes a new instance of the <see cref="T:PCSC.Exceptions.NoSmartcardException"/> class.
            </summary>
            <param name="serr">System's error code</param>
            <param name="message">An error message text.</param>
            <param name="innerException">The inner exception.</param>
        </member>
        <member name="M:PCSC.Exceptions.NoSmartcardException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Serialization constructor
            </summary>
            <param name="info"></param>
            <param name="context"></param>
        </member>
        <member name="T:PCSC.Exceptions.NotReadyException">
            <summary>
            The reader or the smart card is not ready.
            </summary>
        </member>
        <member name="M:PCSC.Exceptions.NotReadyException.#ctor(PCSC.SCardError)">
            <summary>
            Initializes a new instance of the <see cref="T:PCSC.Exceptions.NotReadyException"/> class.
            </summary>
            <param name="serr">System's error code</param>
        </member>
        <member name="M:PCSC.Exceptions.NotReadyException.#ctor(PCSC.SCardError,System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:PCSC.Exceptions.NotReadyException"/> class.
            </summary>
            <param name="serr">System's error code</param>
            <param name="message">An error message text.</param>
        </member>
        <member name="M:PCSC.Exceptions.NotReadyException.#ctor(PCSC.SCardError,System.String,System.Exception)">
            <summary>
            Initializes a new instance of the <see cref="T:PCSC.Exceptions.NotReadyException"/> class.
            </summary>
            <param name="serr">System's error code</param>
            <param name="message">An error message text.</param>
            <param name="innerException">The inner exception.</param>
        </member>
        <member name="M:PCSC.Exceptions.NotReadyException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Serialization constructor
            </summary>
            <param name="info"></param>
            <param name="context"></param>
        </member>
        <member name="T:PCSC.Exceptions.PCSCException">
            <summary>
            A general PC/SC exception.
            </summary>
        </member>
        <member name="F:PCSC.Exceptions.PCSCException.SCARD_ERROR_SERIALIZATION_NAME">
            <summary>
            Serialization name for property <see cref="P:PCSC.Exceptions.PCSCException.SCardError"/>
            </summary>
        </member>
        <member name="P:PCSC.Exceptions.PCSCException.SCardError">
            <summary>
            The system's error code.
            </summary>
        </member>
        <member name="M:PCSC.Exceptions.PCSCException.#ctor(PCSC.SCardError)">
            <summary>
            Creates a new instance.
            </summary>
            <param name="serr">System's error code</param>
        </member>
        <member name="M:PCSC.Exceptions.PCSCException.#ctor(PCSC.SCardError,System.String)">
            <summary>
            Creates a new instance.
            </summary>
            <param name="serr">System's error code</param>
            <param name="message">An error message text.</param>
        </member>
        <member name="M:PCSC.Exceptions.PCSCException.#ctor(PCSC.SCardError,System.String,System.Exception)">
            <summary>
            Initializes a new instance of the <see cref="T:PCSC.Exceptions.PCSCException"/> class.
            </summary>
            <param name="serr">System's error code</param>
            <param name="message">An error message text.</param>
            <param name="innerException">The inner exception.</param>
        </member>
        <member name="M:PCSC.Exceptions.PCSCException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Serialization constructor
            </summary>
            <param name="info"></param>
            <param name="context"></param>
        </member>
        <member name="M:PCSC.Exceptions.PCSCException.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Gets data for serialization
            </summary>
            <param name="info"></param>
            <param name="context"></param>
        </member>
        <member name="T:PCSC.Exceptions.ReaderUnavailableException">
            <summary>
            The requested reader is unavailable.
            </summary>
        </member>
        <member name="M:PCSC.Exceptions.ReaderUnavailableException.#ctor(PCSC.SCardError)">
            <summary>
            Initializes a new instance of the <see cref="T:PCSC.Exceptions.ReaderUnavailableException"/> class.
            </summary>
            <param name="serr">System's error code</param>
        </member>
        <member name="M:PCSC.Exceptions.ReaderUnavailableException.#ctor(PCSC.SCardError,System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:PCSC.Exceptions.ReaderUnavailableException"/> class.
            </summary>
            <param name="serr">System's error code</param>
            <param name="message">An error message text.</param>
        </member>
        <member name="M:PCSC.Exceptions.ReaderUnavailableException.#ctor(PCSC.SCardError,System.String,System.Exception)">
            <summary>
            Initializes a new instance of the <see cref="T:PCSC.Exceptions.ReaderUnavailableException"/> class.
            </summary>
            <param name="serr">System's error code</param>
            <param name="message">An error message text.</param>
            <param name="innerException">The inner exception.</param>
        </member>
        <member name="M:PCSC.Exceptions.ReaderUnavailableException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Serialization constructor
            </summary>
            <param name="info"></param>
            <param name="context"></param>
        </member>
        <member name="T:PCSC.Exceptions.RemovedCardException">
            <summary>
            A smart card has been removed.
            </summary>
        </member>
        <member name="M:PCSC.Exceptions.RemovedCardException.#ctor(PCSC.SCardError)">
            <summary>
            Initializes a new instance of the <see cref="T:PCSC.Exceptions.RemovedCardException"/> class.
            </summary>
            <param name="serr">System's error code</param>
        </member>
        <member name="M:PCSC.Exceptions.RemovedCardException.#ctor(PCSC.SCardError,System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:PCSC.Exceptions.RemovedCardException"/> class.
            </summary>
            <param name="serr">System's error code</param>
            <param name="message">An error message text.</param>
        </member>
        <member name="M:PCSC.Exceptions.RemovedCardException.#ctor(PCSC.SCardError,System.String,System.Exception)">
            <summary>
            Initializes a new instance of the <see cref="T:PCSC.Exceptions.RemovedCardException"/> class.
            </summary>
            <param name="serr">System's error code</param>
            <param name="message">An error message text.</param>
            <param name="innerException">The inner exception.</param>
        </member>
        <member name="M:PCSC.Exceptions.RemovedCardException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Serialization constructor
            </summary>
            <param name="info"></param>
            <param name="context"></param>
        </member>
        <member name="T:PCSC.Exceptions.SharingViolationException">
            <summary>
            A sharing violation occurred.
            </summary>
        </member>
        <member name="M:PCSC.Exceptions.SharingViolationException.#ctor(PCSC.SCardError)">
            <summary>
            Initializes a new instance of the <see cref="T:PCSC.Exceptions.SharingViolationException"/> class.
            </summary>
            <param name="serr">System's error code</param>
        </member>
        <member name="M:PCSC.Exceptions.SharingViolationException.#ctor(PCSC.SCardError,System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:PCSC.Exceptions.SharingViolationException"/> class.
            </summary>
            <param name="serr">System's error code</param>
            <param name="message">An error message text.</param>
        </member>
        <member name="M:PCSC.Exceptions.SharingViolationException.#ctor(PCSC.SCardError,System.String,System.Exception)">
            <summary>
            Initializes a new instance of the <see cref="T:PCSC.Exceptions.SharingViolationException"/> class.
            </summary>
            <param name="serr">System's error code</param>
            <param name="message">An error message text.</param>
            <param name="innerException">The inner exception.</param>
        </member>
        <member name="M:PCSC.Exceptions.SharingViolationException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Serialization constructor
            </summary>
            <param name="info"></param>
            <param name="context"></param>
        </member>
        <member name="T:PCSC.Exceptions.SuccessException">
            <summary>
            Operation exited successfully
            </summary>
        </member>
        <member name="M:PCSC.Exceptions.SuccessException.#ctor(PCSC.SCardError)">
            <summary>
            Initializes a new instance of the <see cref="T:PCSC.Exceptions.SuccessException"/> class.
            </summary>
            <param name="serr">System's error code</param>
        </member>
        <member name="M:PCSC.Exceptions.SuccessException.#ctor(PCSC.SCardError,System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:PCSC.Exceptions.SuccessException"/> class.
            </summary>
            <param name="serr">System's error code</param>
            <param name="message">An error message text.</param>
        </member>
        <member name="M:PCSC.Exceptions.SuccessException.#ctor(PCSC.SCardError,System.String,System.Exception)">
            <summary>
            Initializes a new instance of the <see cref="T:PCSC.Exceptions.SuccessException"/> class.
            </summary>
            <param name="serr">System's error code</param>
            <param name="message">An error message text.</param>
            <param name="innerException">The inner exception.</param>
        </member>
        <member name="M:PCSC.Exceptions.SuccessException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Serialization constructor
            </summary>
            <param name="info"></param>
            <param name="context"></param>
        </member>
        <member name="T:PCSC.Exceptions.UnknownReaderException">
            <summary>
            The requested reader name is unknown.
            </summary>
        </member>
        <member name="M:PCSC.Exceptions.UnknownReaderException.#ctor(PCSC.SCardError)">
            <summary>
            Initializes a new instance of the <see cref="T:PCSC.Exceptions.UnknownReaderException"/> class.
            </summary>
            <param name="serr">System's error code</param>
        </member>
        <member name="M:PCSC.Exceptions.UnknownReaderException.#ctor(PCSC.SCardError,System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:PCSC.Exceptions.UnknownReaderException"/> class.
            </summary>
            <param name="serr">System's error code</param>
            <param name="message">An error message text.</param>
        </member>
        <member name="M:PCSC.Exceptions.UnknownReaderException.#ctor(PCSC.SCardError,System.String,System.Exception)">
            <summary>
            Initializes a new instance of the <see cref="T:PCSC.Exceptions.UnknownReaderException"/> class.
            </summary>
            <param name="serr">System's error code</param>
            <param name="message">An error message text.</param>
            <param name="innerException">The inner exception.</param>
        </member>
        <member name="M:PCSC.Exceptions.UnknownReaderException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Serialization constructor
            </summary>
            <param name="info"></param>
            <param name="context"></param>
        </member>
        <member name="T:PCSC.Exceptions.UnpoweredCardException">
            <summary>
            The smart card is unpowered.
            </summary>
        </member>
        <member name="M:PCSC.Exceptions.UnpoweredCardException.#ctor(PCSC.SCardError)">
            <summary>
            Initializes a new instance of the <see cref="T:PCSC.Exceptions.UnpoweredCardException"/> class.
            </summary>
            <param name="serr">System's error code</param>
        </member>
        <member name="M:PCSC.Exceptions.UnpoweredCardException.#ctor(PCSC.SCardError,System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:PCSC.Exceptions.UnpoweredCardException"/> class.
            </summary>
            <param name="serr">System's error code</param>
            <param name="message">An error message text.</param>
        </member>
        <member name="M:PCSC.Exceptions.UnpoweredCardException.#ctor(PCSC.SCardError,System.String,System.Exception)">
            <summary>
            Initializes a new instance of the <see cref="T:PCSC.Exceptions.UnpoweredCardException"/> class.
            </summary>
            <param name="serr">System's error code</param>
            <param name="message">An error message text.</param>
            <param name="innerException">The inner exception.</param>
        </member>
        <member name="M:PCSC.Exceptions.UnpoweredCardException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Serialization constructor
            </summary>
            <param name="info"></param>
            <param name="context"></param>
        </member>
        <member name="T:PCSC.Exceptions.UnresponsiveCardException">
            <summary>
            The smart card is unresponsive.
            </summary>
        </member>
        <member name="M:PCSC.Exceptions.UnresponsiveCardException.#ctor(PCSC.SCardError)">
            <summary>
            Initializes a new instance of the <see cref="T:PCSC.Exceptions.UnresponsiveCardException"/> class.
            </summary>
            <param name="serr">System's error code</param>
        </member>
        <member name="M:PCSC.Exceptions.UnresponsiveCardException.#ctor(PCSC.SCardError,System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:PCSC.Exceptions.UnresponsiveCardException"/> class.
            </summary>
            <param name="serr">System's error code</param>
            <param name="message">An error message text.</param>
        </member>
        <member name="M:PCSC.Exceptions.UnresponsiveCardException.#ctor(PCSC.SCardError,System.String,System.Exception)">
            <summary>
            Initializes a new instance of the <see cref="T:PCSC.Exceptions.UnresponsiveCardException"/> class.
            </summary>
            <param name="serr">System's error code</param>
            <param name="message">An error message text.</param>
            <param name="innerException">The inner exception.</param>
        </member>
        <member name="M:PCSC.Exceptions.UnresponsiveCardException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Serialization constructor
            </summary>
            <param name="info"></param>
            <param name="context"></param>
        </member>
        <member name="T:PCSC.Exceptions.UnsupportedFeatureException">
            <summary>
            The requested feature is unsupported.
            </summary>
        </member>
        <member name="M:PCSC.Exceptions.UnsupportedFeatureException.#ctor(PCSC.SCardError)">
            <summary>
            Initializes a new instance of the <see cref="T:PCSC.Exceptions.UnsupportedFeatureException"/> class.
            </summary>
            <param name="serr">System's error code</param>
        </member>
        <member name="M:PCSC.Exceptions.UnsupportedFeatureException.#ctor(PCSC.SCardError,System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:PCSC.Exceptions.UnsupportedFeatureException"/> class.
            </summary>
            <param name="serr">System's error code</param>
            <param name="message">An error message text.</param>
        </member>
        <member name="M:PCSC.Exceptions.UnsupportedFeatureException.#ctor(PCSC.SCardError,System.String,System.Exception)">
            <summary>
            Initializes a new instance of the <see cref="T:PCSC.Exceptions.UnsupportedFeatureException"/> class.
            </summary>
            <param name="serr">System's error code</param>
            <param name="message">An error message text.</param>
            <param name="innerException">The inner exception.</param>
        </member>
        <member name="M:PCSC.Exceptions.UnsupportedFeatureException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Serialization constructor
            </summary>
            <param name="info"></param>
            <param name="context"></param>
        </member>
        <member name="T:PCSC.Exceptions.WinErrorInsufficientBufferException">
            <summary>
            A supplied buffer is insufficient.
            </summary>
        </member>
        <member name="M:PCSC.Exceptions.WinErrorInsufficientBufferException.#ctor(PCSC.SCardError)">
            <summary>
            Initializes a new instance of the <see cref="T:PCSC.Exceptions.WinErrorInsufficientBufferException"/> class.
            </summary>
            <param name="serr">System's error code</param>
        </member>
        <member name="M:PCSC.Exceptions.WinErrorInsufficientBufferException.#ctor(PCSC.SCardError,System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:PCSC.Exceptions.WinErrorInsufficientBufferException"/> class.
            </summary>
            <param name="serr">System's error code</param>
            <param name="message">An error message text.</param>
        </member>
        <member name="M:PCSC.Exceptions.WinErrorInsufficientBufferException.#ctor(PCSC.SCardError,System.String,System.Exception)">
            <summary>
            Initializes a new instance of the <see cref="T:PCSC.Exceptions.WinErrorInsufficientBufferException"/> class.
            </summary>
            <param name="serr">System's error code</param>
            <param name="message">An error message text.</param>
            <param name="innerException">The inner exception.</param>
        </member>
        <member name="M:PCSC.Exceptions.WinErrorInsufficientBufferException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Serialization constructor
            </summary>
            <param name="info"></param>
            <param name="context"></param>
        </member>
        <member name="T:PCSC.Extensions.CardErrorExt">
            <summary>
            CardError extensions methods
            </summary>
        </member>
        <member name="M:PCSC.Extensions.CardErrorExt.ThrowIfNotSuccess(PCSC.SCardError)">
            <summary>
            Throws an exception if <paramref name="sc"/> is not <see cref="F:PCSC.SCardError.Success"/>.
            </summary>
            <param name="sc">error code to check</param>
        </member>
        <member name="M:PCSC.Extensions.CardErrorExt.Throw(PCSC.SCardError)">
            <summary>
            Throws a specific exception
            </summary>
            <param name="sc">error code to check</param>
        </member>
        <member name="T:PCSC.Extensions.SCRStateExt">
            <summary>
            Extension methods for <see cref="T:PCSC.SCRState"/>
            </summary>
        </member>
        <member name="M:PCSC.Extensions.SCRStateExt.CardIsAbsent(PCSC.SCRState)">
            <summary>
            Checks if a card is absent
            </summary>
            <param name="state">State to check</param>
            <returns><c>true</c> if the card is absent</returns>
        </member>
        <member name="M:PCSC.Extensions.SCRStateExt.CardIsPresent(PCSC.SCRState)">
            <summary>
            Checks if a card is present
            </summary>
            <param name="state">State to check</param>
            <returns><c>true</c> if a card is present</returns>
        </member>
        <member name="T:PCSC.ICardHandle">
            <summary>
            Encapsulates a handle to a connected card / or a directly connected reader
            </summary>
        </member>
        <member name="P:PCSC.ICardHandle.Handle">
            <summary>
            The card handle
            </summary>
        </member>
        <member name="P:PCSC.ICardHandle.ReaderName">
            <summary>The connected reader's friendly name.</summary>
            <value>A human readable string of the reader name or <see langword="null" /> if the reader object is currently not connected.</value>
        </member>
        <member name="P:PCSC.ICardHandle.Mode">
            <summary>The current mode of connection type: exclusive, shared or direct.</summary>
        </member>
        <member name="P:PCSC.ICardHandle.Protocol">
            <summary>The currently used protocol to communicate with the card.</summary>
            <value>
                <see cref="F:PCSC.SCardProtocol.Unset" /> if not connected.</value>
        </member>
        <member name="P:PCSC.ICardHandle.IsConnected">
            <summary>The current connection state of the reader.</summary>
            <value><see langword="true" /> if the reader is connected. Otherwise <see langword="false" />.</value>
        </member>
        <member name="M:PCSC.ICardHandle.Connect(System.String,PCSC.SCardShareMode,PCSC.SCardProtocol)">
            <summary>Establishes a connection to the Smart Card reader.</summary>
            <param name="readerName">Reader name to connect to.</param>
            <param name="mode">Mode of connection type: exclusive or shared.
                <list type="table">
                    <listheader><term>Value</term><description>Description</description></listheader>
                    <item><term><see cref="F:PCSC.SCardShareMode.Shared" /></term><description>This application will allow others to share the reader. (SCARD_SHARE_SHARED)</description></item>
                    <item><term><see cref="F:PCSC.SCardShareMode.Exclusive" /></term><description>This application will NOT allow others to share the reader. (SCARD_SHARE_EXCLUSIVE)</description></item>
                </list>
            </param>
            <param name="preferredProtocol">Desired protocol use.</param>
            <remarks>
                <para>
                    <paramref name="preferredProtocol" />  is a bit mask of acceptable protocols for the connection. You can use (<see cref="F:PCSC.SCardProtocol.T0" /> | <see cref="F:PCSC.SCardProtocol.T1" />) if you do not have a preferred protocol.</para>
                <para>This method calls the API function SCardConnect().</para>
            </remarks>
        </member>
        <member name="M:PCSC.ICardHandle.Disconnect(PCSC.SCardReaderDisposition)">
            <summary>Terminates a connection made through <see cref="M:PCSC.ICardHandle.Connect(System.String,PCSC.SCardShareMode,PCSC.SCardProtocol)" />.</summary>
            <param name="disconnectExecution">Reader function to execute.</param>
            <remarks>
                <para>This method calls the API function SCardDisconnect().</para>
            </remarks>
        </member>
        <member name="M:PCSC.ICardHandle.Reconnect(PCSC.SCardShareMode,PCSC.SCardProtocol,PCSC.SCardReaderDisposition)">
            <summary>Reestablishes a connection to a reader that was previously connected to using
                <see
                    cref="M:PCSC.ICardHandle.Connect(System.String,PCSC.SCardShareMode,PCSC.SCardProtocol)" />
                .</summary>
            <param name="mode">Mode of connection type: exclusive/shared.
                <list type="table">
                    <listheader>
                        <term>Value</term><description>Description</description>
                    </listheader>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardShareMode.Shared" />
                        </term>
                        <description>This application will allow others to share the reader. (SCARD_SHARE_SHARED)</description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardShareMode.Exclusive" />
                        </term>
                        <description>This application will NOT allow others to share the reader. (SCARD_SHARE_EXCLUSIVE)</description>
                    </item>
                </list>
            </param>
            <param name="preferredProtocol">Desired protocol use.</param>
            <param name="initialExecution">Desired action taken on the card/reader before reconnect.</param>
            <remarks>
                <para>
                    <paramref name="preferredProtocol" />  is a bit mask of acceptable protocols for the connection. You can use (<see cref="F:PCSC.SCardProtocol.T0" /> | <see cref="F:PCSC.SCardProtocol.T1" />) if you do not have a preferred protocol. The protocol used with this connection will be stored in <see cref="P:PCSC.ISCardReader.ActiveProtocol" />.</para>
                <para>This method calls the API function SCardReconnect().</para>
            </remarks>
        </member>
        <member name="T:PCSC.ICardReader">
            <summary>A reader class that implements the most basic PC/SC functions to operate on smart cards, RFID tags and so on.</summary>
        </member>
        <member name="P:PCSC.ICardReader.Name">
            <summary>The connected reader's friendly name.</summary>
            <value>A human readable string of the reader name.</value>
        </member>
        <member name="P:PCSC.ICardReader.Mode">
            <summary>The current mode of connection type: exclusive, shared or direct.</summary>
        </member>
        <member name="P:PCSC.ICardReader.Protocol">
            <summary>The currently used protocol to communicate with the card.</summary>
        </member>
        <member name="P:PCSC.ICardReader.CardHandle">
            <summary>
            Card or reader handle. <see cref="P:PCSC.ICardHandle.Handle"/> can be used for C API calls
            </summary>
        </member>
        <member name="P:PCSC.ICardReader.IsConnected">
            <summary>Connection state of the reader.</summary>
            <value><see langword="true" /> if the reader is connected. Otherwise <see langword="false" />.</value>
        </member>
        <member name="M:PCSC.ICardReader.Reconnect(PCSC.SCardShareMode,PCSC.SCardProtocol,PCSC.SCardReaderDisposition)">
            <summary>Reestablishes a connection to a reader that was previously connected to using
                <see
                    cref="M:PCSC.ISCardReader.Connect(System.String,PCSC.SCardShareMode,PCSC.SCardProtocol)" />
                .</summary>
            <param name="mode">Mode of connection type: exclusive/shared.
                <list type="table">
                    <listheader>
                        <term>Value</term><description>Description</description>
                    </listheader>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardShareMode.Shared" />
                        </term>
                        <description>This application will allow others to share the reader. (SCARD_SHARE_SHARED)</description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardShareMode.Exclusive" />
                        </term>
                        <description>This application will NOT allow others to share the reader. (SCARD_SHARE_EXCLUSIVE)</description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardShareMode.Direct" />
                        </term>
                        <description>Direct connection to the reader. (SCARD_SHARE_DIRECT)</description>
                    </item>
                </list>
            </param>
            <param name="preferredProtocol">Desired protocol use.</param>
            <param name="initialExecution">Desired action taken on the card/reader before reconnect.</param>
            <remarks>
                <para>
                    <paramref name="preferredProtocol" />  is a bit mask of acceptable protocols for the connection. You can use (<see cref="F:PCSC.SCardProtocol.T0" /> | <see cref="F:PCSC.SCardProtocol.T1" />) if you do not have a preferred protocol. The protocol used with this connection will be stored in <see cref="P:PCSC.ISCardReader.ActiveProtocol" />.</para>
                <para>This method calls the API function SCardReconnect().</para>
            </remarks>
        </member>
        <member name="M:PCSC.ICardReader.Transaction(PCSC.SCardReaderDisposition)">
            <summary>Establishes a temporary exclusive access mode for doing a serie of commands in a transaction.</summary>
            <param name="disposition">Action to be taken on the reader if the user ends the transaction.</param>
            <remarks>
                <para>You might want to use this when you are selecting a few files and then writing a large file so you can make sure that another application will not change the current file. If another application has a lock on this reader or this application is in
                    <see cref="F:PCSC.SCardShareMode.Exclusive" /> there will be no action taken.</para>
                <para>This method calls the API function SCardBeginTransaction(). SCardEndTransaction() will be called when you dispose the returned value</para>
            </remarks>
            <returns>An anonymous instance implementing <see cref="T:System.IDisposable"/> that must be disposed to end the transaction.</returns>
        </member>
        <member name="M:PCSC.ICardReader.Transmit(System.Byte[],System.Byte[])">
            <summary>Sends an APDU to the smart card. </summary>
            <param name="sendBuffer">APDU to send to the card. </param>
            <param name="receiveBuffer">Response from the card.</param>
            <remarks>
                <block subset="none" type="note">
                    <para>This method will only work if the reader has been connected with one of the following protocols:
                        <list type="table">
                            <listheader><term>Protocol</term><description>Description</description></listheader>
                            <item><term><see cref="F:PCSC.SCardProtocol.T0" /></term><description>T=0 active protocol.</description></item>
                            <item><term><see cref="F:PCSC.SCardProtocol.T1" /></term><description>T=1 active protocol.</description></item>
                            <item><term><see cref="F:PCSC.SCardProtocol.Raw" /></term><description>Raw active protocol.</description></item>
                        </list>
                    </para>
                </block>
            </remarks>
            <returns>The number of bytes written to the <paramref name="receiveBuffer"/></returns>
        </member>
        <member name="M:PCSC.ICardReader.Transmit(System.IntPtr,System.Byte[],System.Byte[])">
            <summary>Sends an APDU to the smart card. </summary>
            <param name="sendPci">A pointer to the protocol header structure for the instruction. This buffer is in the format of an SCARD_IO_REQUEST structure, followed by the specific protocol control information (PCI). You can use one of the following:
                <list type="table">
                    <listheader>
                        <term>Protocol Control Information</term>
                        <description>Description</description>
                    </listheader>
                    <item>
                        <term><see cref="P:PCSC.SCardPCI.T0" /></term><description>Pre-defined T=0 PCI structure. (SCARD_PCI_T0)</description>
                    </item>
                    <item>
                        <term><see cref="P:PCSC.SCardPCI.T1" /></term><description>Pre-defined T=1 PCI structure. (SCARD_PCI_T1)</description>
                    </item>
                    <item>
                        <term><see cref="P:PCSC.SCardPCI.Raw" /></term><description>Pre-defined RAW PCI structure. (SCARD_PCI_RAW)</description>
                    </item>
                </list>
            </param>
            <param name="sendBuffer">APDU to send to the card. </param>
            <param name="receiveBuffer">Response from the card.</param>
            <returns>The number of bytes written to the <paramref name="receiveBuffer"/></returns>
        </member>
        <member name="M:PCSC.ICardReader.Transmit(PCSC.SCardPCI,System.Byte[],System.Byte[])">
            <summary>Sends an APDU to the smart card. </summary>
            <param name="sendPci">Protocol Control Information in the format of an SCARD_IO_REQUEST structure, followed by the specific protocol control information (PCI)</param>
            <param name="sendBuffer">APDU to send to the card. </param>
            <param name="receiveBuffer">Response from the card.</param>
            <returns>The number of bytes written to the <paramref name="receiveBuffer"/></returns>
        </member>
        <member name="M:PCSC.ICardReader.Transmit(System.IntPtr,System.Byte[],System.Int32,System.IntPtr,System.Byte[],System.Int32)">
            <summary>Sends an APDU to the smart card. </summary>
            <param name="sendPci">A pointer to the protocol header structure for the instruction. This buffer is in the format of an SCARD_IO_REQUEST structure, followed by the specific protocol control information (PCI). You can use one of the following:
                <list type="table">
                    <listheader>
                        <term>Protocol Control Information</term>
                        <description>Description</description>
                    </listheader>
                    <item>
                        <term><see cref="P:PCSC.SCardPCI.T0" /></term><description>Pre-defined T=0 PCI structure. (SCARD_PCI_T0)</description>
                    </item>
                    <item>
                        <term><see cref="P:PCSC.SCardPCI.T1" /></term><description>Pre-defined T=1 PCI structure. (SCARD_PCI_T1)</description>
                    </item>
                    <item>
                        <term><see cref="P:PCSC.SCardPCI.Raw" /></term><description>Pre-defined RAW PCI structure. (SCARD_PCI_RAW)</description>
                    </item>
                </list>
            </param>
            <param name="sendBuffer">APDU to send to the card. </param>
            <param name="sendBufferLength">The buffer size of <paramref name="sendBuffer" /> in bytes.</param>
            <param name="receivePci">Pointer to the protocol header structure for the instruction, followed by a buffer in which to receive any returned protocol control information (PCI) specific to the protocol in use. This parameter can be NULL if no PCI is returned.</param>
            <param name="receiveBuffer">Response from the card.</param>
            <param name="receiveBufferLength">The buffer size of <paramref name="receiveBuffer" /> in bytes.</param>
            <returns>The number of bytes written to the <paramref name="receiveBuffer"/></returns>
        </member>
        <member name="M:PCSC.ICardReader.Transmit(System.IntPtr,System.Byte[],System.Int32,System.Byte[],System.Int32)">
            <summary>Sends an APDU to the smart card. </summary>
            <param name="sendPci">A pointer to the protocol header structure for the instruction. This buffer is in the format of an SCARD_IO_REQUEST structure, followed by the specific protocol control information (PCI). You can use one of the following:
                <list type="table">
                    <listheader>
                        <term>Protocol Control Information</term>
                        <description>Description</description>
                    </listheader>
                    <item>
                        <term><see cref="P:PCSC.SCardPCI.T0" /></term><description>Pre-defined T=0 PCI structure. (SCARD_PCI_T0)</description>
                    </item>
                    <item>
                        <term><see cref="P:PCSC.SCardPCI.T1" /></term><description>Pre-defined T=1 PCI structure. (SCARD_PCI_T1)</description>
                    </item>
                    <item>
                        <term><see cref="P:PCSC.SCardPCI.Raw" /></term><description>Pre-defined RAW PCI structure. (SCARD_PCI_RAW)</description>
                    </item>
                </list>
            </param>
            <param name="sendBuffer">APDU to send to the card. </param>
            <param name="sendBufferLength">The buffer size of <paramref name="sendBuffer" /> in bytes.</param>
            <param name="receiveBuffer">Response from the card.</param>
            <param name="receiveBufferLength">The buffer size of <paramref name="receiveBuffer" /> in bytes.</param>
            <returns>The number of bytes written to the <paramref name="receiveBuffer"/></returns>
        </member>
        <member name="M:PCSC.ICardReader.Transmit(System.IntPtr,System.Byte[],System.Int32,PCSC.SCardPCI,System.Byte[],System.Int32)">
            <summary>Sends an APDU to the smart card. </summary>
            <param name="sendPci">A pointer to the protocol header structure for the instruction. This buffer is in the format of an SCARD_IO_REQUEST structure, followed by the specific protocol control information (PCI). You can use one of the following:
                <list type="table">
                    <listheader>
                        <term>Protocol Control Information</term>
                        <description>Description</description>
                    </listheader>
                    <item>
                        <term><see cref="P:PCSC.SCardPCI.T0" /></term><description>Pre-defined T=0 PCI structure. (SCARD_PCI_T0)</description>
                    </item>
                    <item>
                        <term><see cref="P:PCSC.SCardPCI.T1" /></term><description>Pre-defined T=1 PCI structure. (SCARD_PCI_T1)</description>
                    </item>
                    <item>
                        <term><see cref="P:PCSC.SCardPCI.Raw" /></term><description>Pre-defined RAW PCI structure. (SCARD_PCI_RAW)</description>
                    </item>
                </list>
            </param>
            <param name="sendBuffer">APDU to send to the card. </param>
            <param name="sendBufferLength">The buffer size of <paramref name="sendBuffer" /> in bytes.</param>
            <param name="receivePci">Structure of Protocol Header Information followed by a buffer in which to receive any returned protocol control information (PCI) specific to the protocol in use. This parameter can be <c>null</c> if no PCI is returned.</param>
            <param name="receiveBuffer">Response from the card.</param>
            <param name="receiveBufferLength">The buffer size of <paramref name="receiveBuffer" /> in bytes.</param>
            <returns>The number of bytes written to the <paramref name="receiveBuffer"/></returns>
        </member>
        <member name="M:PCSC.ICardReader.Transmit(PCSC.SCardPCI,System.Byte[],System.Int32,PCSC.SCardPCI,System.Byte[],System.Int32)">
            <summary>Sends an APDU to the smart card. </summary>
            <param name="sendPci">Protocol Control Information in the format of an SCARD_IO_REQUEST structure, followed by the specific protocol control information (PCI)</param>
            <param name="sendBuffer">APDU to send to the card. </param>
            <param name="sendBufferLength">The buffer size of <paramref name="sendBuffer" /> in bytes.</param>
            <param name="receivePci">Structure of Protocol Header Information followed by a buffer in which to receive any returned protocol control information (PCI) specific to the protocol in use. This parameter can be <c>null</c> if no PCI is returned.</param>
            <param name="receiveBuffer">Response from the card.</param>
            <param name="receiveBufferLength">The buffer size of <paramref name="receiveBuffer" /> in bytes.</param>
            <returns>The number of bytes written to the <paramref name="receiveBuffer"/></returns>
        </member>
        <member name="M:PCSC.ICardReader.Transmit(PCSC.SCardPCI,System.Byte[],System.Int32,System.Byte[],System.Int32)">
            <summary>Sends an APDU to the smart card. </summary>
            <param name="sendPci">Protocol Control Information in the format of an SCARD_IO_REQUEST structure, followed by the specific protocol control information (PCI)</param>
            <param name="sendBuffer">APDU to send to the card. </param>
            <param name="sendBufferLength">The buffer size of <paramref name="sendBuffer" /> in bytes.</param>
            <param name="receiveBuffer">Response from the card.</param>
            <param name="receiveBufferLength">The buffer size of <paramref name="receiveBuffer" /> in bytes.</param>
            <returns>The number of bytes written to the <paramref name="receiveBuffer"/></returns>
        </member>
        <member name="M:PCSC.ICardReader.Control(System.IntPtr,System.Byte[],System.Int32,System.Byte[],System.Int32)">
            <summary>Sends a command directly to the IFD Handler (reader driver) to be processed by the reader.</summary>
            <param name="controlCode">Control code for the operation.</param>
            <param name="sendBuffer">Command to send to the reader.</param>
            <param name="sendBufferLength"><paramref name="sendBuffer"/> size</param>
            <param name="receiveBuffer">Response from the reader.</param>
            <param name="receiveBufferLength"><paramref name="receiveBuffer"/> size</param>
            <remarks>
                <para>This method is useful for creating client side reader drivers for functions like PIN pads, biometrics, or other extensions to the normal smart card reader that are not normally handled by PC/SC.</para>
                <para>This method calls the API function SCardControl().</para>
            </remarks>
            <returns>The number of bytes written to the <paramref name="receiveBuffer"/></returns>
        </member>
        <member name="M:PCSC.ICardReader.Control(System.IntPtr,System.Byte[],System.Byte[])">
            <summary>Sends a command directly to the IFD Handler (reader driver) to be processed by the reader.</summary>
            <param name="controlCode">Control code for the operation.</param>
            <param name="sendBuffer">Command to send to the reader.</param>
            <param name="receiveBuffer">Response from the reader.</param>
            <remarks>
                <para>This method is useful for creating client side reader drivers for functions like PIN pads, biometrics, or other extensions to the normal smart card reader that are not normally handled by PC/SC.</para>
                <para>This method calls the API function SCardControl().</para>
            </remarks>
            <returns>The number of bytes written to the <paramref name="receiveBuffer"/></returns>
        </member>
        <member name="M:PCSC.ICardReader.GetStatus">
            <summary>Returns the current status of the reader and the connected card.</summary>
            <returns>A reader status instance</returns>
        </member>
        <member name="M:PCSC.ICardReader.GetAttrib(System.IntPtr,System.Byte[],System.Int32)">
            <summary>Gets an attribute from the IFD Handler (reader driver).</summary>
            <param name="attributeId">Identifier for the attribute to get.</param>
            <param name="receiveBuffer">A buffer that receives the attribute.</param>
            <param name="receiveBufferSize"><paramref name="receiveBuffer"/> size.</param>
            <remarks>This method calls the API function SCardGetAttrib().</remarks>
            <returns>The number of bytes written to the attributebuffer OR the required buffer size if <paramref name="receiveBuffer"/> is <c>null</c>.</returns>
        </member>
        <member name="M:PCSC.ICardReader.GetAttrib(System.IntPtr,System.Byte[])">
            <summary>Gets an attribute from the IFD Handler (reader driver).</summary>
            <param name="attributeId">Identifier for the attribute to get.</param>
            <param name="receiveBuffer">A buffer that receives the attribute.</param>
            <remarks>This method calls the API function SCardGetAttrib().</remarks>
            <returns>The number of bytes written to the attributebuffer OR the required buffer size if <paramref name="receiveBuffer"/> is <c>null</c>.</returns>
        </member>
        <member name="M:PCSC.ICardReader.GetAttrib(PCSC.SCardAttribute,System.Byte[],System.Int32)">
            <summary>Gets an attribute from the IFD Handler (reader driver).</summary>
            <param name="attributeId">Identifier for the attribute to get.</param>
            <param name="receiveBuffer">A buffer that receives the attribute.</param>
            <param name="receiveBufferSize"><paramref name="receiveBuffer"/> size.</param>
            <remarks>This method calls the API function SCardGetAttrib().</remarks>
            <returns>The number of bytes written to the attributebuffer OR the required buffer size if <paramref name="receiveBuffer"/> is <c>null</c>.</returns>
        </member>
        <member name="M:PCSC.ICardReader.GetAttrib(PCSC.SCardAttribute,System.Byte[])">
            <summary>Gets an attribute from the IFD Handler (reader driver).</summary>
            <param name="attributeId">Identifier for the attribute to get.</param>
            <param name="receiveBuffer">A buffer that receives the attribute.</param>
            <remarks>This method calls the API function SCardGetAttrib().</remarks>
            <returns>The number of bytes written to the attributebuffer OR the required buffer size if <paramref name="receiveBuffer"/> is <c>null</c>.</returns>
        </member>
        <member name="M:PCSC.ICardReader.GetAttrib(PCSC.SCardAttribute)">
            <summary>Gets an attribute from the IFD Handler (reader driver).</summary>
            <param name="attributeId">Identifier for the attribute to get.</param>
            <remarks>This method calls the API function SCardGetAttrib().</remarks>
            <returns>The attribute bytes</returns>
        </member>
        <member name="M:PCSC.ICardReader.GetAttrib(System.IntPtr)">
            <summary>Gets an attribute from the IFD Handler (reader driver).</summary>
            <param name="attributeId">Identifier for the attribute to get.</param>
            <remarks>This method calls the API function SCardGetAttrib().</remarks>
            <returns>The attribute bytes</returns>
        </member>
        <member name="M:PCSC.ICardReader.SetAttrib(System.IntPtr,System.Byte[],System.Int32)">
            <summary>Set an attribute of the IFD Handler.</summary>
            <param name="attributeId">Identifier for the attribute to set.</param>
            <param name="sendBuffer">Buffer that contains the new value of the attribute.</param>
            <param name="sendBufferLength">Length of the <paramref name="sendBuffer" /> buffer in bytes.</param>
            <remarks>
                <para>The list of attributes you can set depends on the IFD handler you are using.</para>
                <para>This method calls the API function SCardSetAttrib().</para>
            </remarks>
        </member>
        <member name="M:PCSC.ICardReader.SetAttrib(System.IntPtr,System.Byte[])">
            <summary>Set an attribute of the IFD Handler.</summary>
            <param name="attributeId">Identifier for the attribute to set.</param>
            <param name="sendBuffer">Buffer that contains the new value of the attribute.</param>
            <remarks>
                <para>The list of attributes you can set depends on the IFD handler you are using.</para>
                <para>This method calls the API function SCardSetAttrib().</para>
            </remarks>
        </member>
        <member name="M:PCSC.ICardReader.SetAttrib(PCSC.SCardAttribute,System.Byte[],System.Int32)">
            <summary>Set an attribute of the IFD Handler.</summary>
            <param name="attributeId">Identifier for the attribute to set.</param>
            <param name="sendBuffer">Buffer that contains the new value of the attribute.</param>
            <param name="sendBufferLength">Length of the <paramref name="sendBuffer" /> buffer in bytes.</param>
            <remarks>
                <para>The list of attributes you can set depends on the IFD handler you are using.</para>
                <para>This method calls the API function SCardSetAttrib().</para>
            </remarks>
        </member>
        <member name="M:PCSC.ICardReader.SetAttrib(PCSC.SCardAttribute,System.Byte[])">
            <summary>Set an attribute of the IFD Handler.</summary>
            <param name="attributeId">Identifier for the attribute to set.</param>
            <param name="sendBuffer">Buffer that contains the new value of the attribute.</param>
            <remarks>
                <para>The list of attributes you can set depends on the IFD handler you are using.</para>
                <para>This method calls the API function SCardSetAttrib().</para>
            </remarks>
        </member>
        <member name="M:PCSC.ICardReader.Disconnect(PCSC.SCardReaderDisposition)">
            <summary>Terminates a connection and invalidates the card handle." />.</summary>
            <param name="disconnectExecution">Reader function to execute.</param>
            <remarks>
                <para>This method calls the API function SCardDisconnect(). You cannot Reconnect after calling this method.</para>
            </remarks>
        </member>
        <member name="T:PCSC.IContextFactory">
            <summary>
            Smart card context factory
            </summary>
        </member>
        <member name="M:PCSC.IContextFactory.Establish(PCSC.SCardScope)">
            <summary>
            Create and establish a new smart card context.
            </summary>
            <param name="scope">Scope of the establishment. This can either be a local or remote connection.</param>
            <returns>A new established smart card context</returns>
        </member>
        <member name="T:PCSC.Interop.ISCardApi">
            <summary>
            Gives access to the system's smart card API
            </summary>
        </member>
        <member name="T:PCSC.Interop.Linux.PCSCliteLinux">
            <summary>
            PC/SC API for Linux (x86/x64) 
            </summary>
        </member>
        <member name="T:PCSC.Interop.MacOSX.PCSCliteMacOsX">
            <summary>
            PC/SC API for MacOS X
            </summary>
        </member>
        <member name="T:PCSC.Interop.Platform">
            <summary>
            Platform selector (Windows or UNIX)
            </summary>
        </member>
        <member name="P:PCSC.Interop.Platform.IsWindows">
            <summary>
            Returns <c>true</c> if the operation system runs on Windows. <c>false</c> otherwise.
            </summary>
        </member>
        <member name="P:PCSC.Interop.Platform.Lib">
            <summary>
            Platform smart card library.
            </summary>
        </member>
        <member name="T:PCSC.Interop.Windows.SCardStateWindows">
            <summary>State of the smart card in the reader.</summary>
            <remarks>Is a bit mask that represents the current reader status.</remarks>
        </member>
        <member name="F:PCSC.Interop.Windows.SCardStateWindows.Unknown">
            <summary>Unknown status.</summary>
        </member>
        <member name="F:PCSC.Interop.Windows.SCardStateWindows.Absent">
            <summary>There is no card in the reader.</summary>
        </member>
        <member name="F:PCSC.Interop.Windows.SCardStateWindows.Present">
            <summary>There is a card in the reader, but it has not been moved into position for use.</summary>
        </member>
        <member name="F:PCSC.Interop.Windows.SCardStateWindows.Swallowed">
            <summary>There is a card in the reader in position for use. The card is not powered.</summary>
        </member>
        <member name="F:PCSC.Interop.Windows.SCardStateWindows.Powered">
            <summary>Power is being provided to the card, but the reader driver is unaware of the mode of the card.</summary>
        </member>
        <member name="F:PCSC.Interop.Windows.SCardStateWindows.Negotiable">
            <summary>The card has been reset and is awaiting PTS negotiation.</summary>
        </member>
        <member name="F:PCSC.Interop.Windows.SCardStateWindows.Specific">
            <summary>The card has been reset and specific communication protocols have been established.</summary>
        </member>
        <member name="T:PCSC.Interop.Windows.WinSCardAPI">
            <summary>
            PC/SC API for Microsoft Win32/Win64 (x86/x64/IA64)
            </summary>
        </member>
        <member name="T:PCSC.ISCardContext">
            <summary>An application context to the PC/SC Resource Manager.</summary>
            <remarks>Each thread of an application shall use its own context.</remarks>
        </member>
        <member name="P:PCSC.ISCardContext.Handle">
            <summary>A pointer (Application Context) that can be used for C API calls.</summary>
            <value>The returned Application Context handle. Is <see cref="F:System.IntPtr.Zero" /> if not context has been established.</value>
            <remarks>This is the Application Context handle that is returned when calling the C API function SCardEstablishContext().</remarks>
        </member>
        <member name="P:PCSC.ISCardContext.MaxAtrSize">
            <summary>Maximum ATR size.</summary>
            <value>
                <list type="table">
                    <listheader><term>Platform</term><description>Maximum ATR size</description></listheader>
                    <item>
                        <term>Windows (Winscard.dll)</term>
                        <description>36</description>
                    </item>
                    <item>
                        <term>UNIX/Linux (PC/SClite)</term>
                        <description>33</description>
                    </item>
                </list>
            </value>
            <remarks>Attention: Size depends on platform.</remarks>
        </member>
        <member name="P:PCSC.ISCardContext.Infinite">
            <summary>Infinite timeout.</summary>
            <value>0xFFFFFFFF</value>
        </member>
        <member name="M:PCSC.ISCardContext.Establish(PCSC.SCardScope)">
            <summary>Creates an Application Context to the PC/SC Resource Manager.</summary>
            <param name="scope">Scope of the establishment. This can either be a local or remote connection.</param>
            <remarks>
                <para>Creates an Application Context for a client. This must be the first WinSCard function called in a PC/SC application. Each thread of an application shall use its own <see cref="T:PCSC.SCardContext" />.</para>
                <para>This method calls the API function SCardEstablishContext().</para>
            </remarks>
        </member>
        <member name="M:PCSC.ISCardContext.Release">
            <summary>Destroys a communication context to the PC/SC Resource Manager and frees unmanaged resources.</summary>
            <remarks>
                <para>This must be the last method called in a PC/SC application. <see cref="M:PCSC.SCardContext.Dispose"/> calls this method silently.</para>
                <para>This method calls the API function SCardReleaseContext().</para>
            </remarks>
        </member>
        <member name="M:PCSC.ISCardContext.CheckValidity">
            <summary>Checks the validity of the current context.</summary>
            <returns>
                <list type="table">
                    <listheader>
                        <term>Return value</term>
                        <description>Description</description>
                    </listheader>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.Success" />
                        </term>
                        <description>The context is valid. (SCARD_S_SUCCESS)</description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.InvalidHandle" />
                        </term>
                        <description>The context is invalid. (SCARD_E_INVALID_HANDLE)</description>
                    </item>
                </list>
            </returns>
            <remarks>
                <para>Call this function to determine whether a smart card context handle is still valid. After a smart card context handle has been set by <see cref="M:PCSC.SCardContext.Establish(PCSC.SCardScope)" />, it may become not valid if the resource manager service has been shut down.</para>
                <para>This method calls the API function SCardIsValidContext().</para>
            </remarks>
        </member>
        <member name="M:PCSC.ISCardContext.IsValid">
            <summary>Checks the validity of the current context.</summary>
            <returns><see langword="true" /> if the context is valid.</returns>
            <remarks>Call this function to determine whether a smart card context handle is still valid. After a smart card context handle has been set by <see cref="M:PCSC.SCardContext.Establish(PCSC.SCardScope)" />, it may become not valid if the resource manager service has been shut down.
            </remarks>
        </member>
        <member name="M:PCSC.ISCardContext.GetReaders(System.String[])">
            <summary>Returns a list of currently available readers.</summary>
            <param name="groups">List of groups to list readers.</param>
            <returns>An array of <see cref="T:System.String" />s containing all Smart Card readers found by the PC/SC Resource Manager.</returns>
            <remarks>
                <para>Groups are not used on Linux/UNIX machines using the PC/SC Lite daemon.</para>
                <para>This method calls the API function SCardListReaders().</para>
            </remarks>
        </member>
        <member name="M:PCSC.ISCardContext.GetReaders">
            <summary>Returns a list of currently available readers.</summary>
            <returns>An array of <see cref="T:System.String" />s containing all Smart Card readers found by the PC/SC Resource Manager.</returns>
            <remarks>
                <para>This method calls the API function SCardListReaders().</para>
            </remarks>
        </member>
        <member name="M:PCSC.ISCardContext.GetReaderGroups">
            <summary>Returns a list of currently available reader groups. </summary>
            <returns>An array of <see cref="T:System.String" />s containing all Smart Card reader groups found by the PC/SC Resource Manager.</returns>
            <remarks>
                <para>This method calls the API function SCardListReaderGroups().</para>
            </remarks>
        </member>
        <member name="M:PCSC.ISCardContext.Connect(System.String,PCSC.SCardShareMode,PCSC.SCardProtocol)">
            <summary>Establishes a connection to the Smart Card reader and returns a handle</summary>
            <param name="readerName">Reader name to connect to.</param>
            <param name="mode">Mode of connection type: exclusive or shared.
                <list type="table">
                    <listheader><term>Value</term><description>Description</description></listheader>
                    <item><term><see cref="F:PCSC.SCardShareMode.Shared" /></term><description>This application will allow others to share the reader. (SCARD_SHARE_SHARED)</description></item>
                    <item><term><see cref="F:PCSC.SCardShareMode.Exclusive" /></term><description>This application will NOT allow others to share the reader. (SCARD_SHARE_EXCLUSIVE)</description></item>
                    <item><term><see cref="F:PCSC.SCardShareMode.Direct" /></term><description>Direct connection to the reader. (SCARD_SHARE_DIRECT)</description></item>
                </list>
            </param>
            <param name="preferredProtocol">Desired protocol use.</param>
            <remarks>
                <para>
                    <paramref name="preferredProtocol" />  is a bit mask of acceptable protocols for the connection. You can use (<see cref="F:PCSC.SCardProtocol.T0" /> | <see cref="F:PCSC.SCardProtocol.T1" />) if you do not have a preferred protocol.</para>
                <para>This method calls the API function SCardConnect().</para>
            </remarks>
            <returns>A handle to the smartcard or reader</returns>
        </member>
        <member name="M:PCSC.ISCardContext.ConnectReader(System.String,PCSC.SCardShareMode,PCSC.SCardProtocol)">
            <summary>Establishes a connection to the Smart Card reader and returns a reader instance</summary>
            <param name="readerName">Reader name to connect to.</param>
            <param name="mode">Mode of connection type: exclusive or shared.
                <list type="table">
                    <listheader><term>Value</term><description>Description</description></listheader>
                    <item><term><see cref="F:PCSC.SCardShareMode.Shared" /></term><description>This application will allow others to share the reader. (SCARD_SHARE_SHARED)</description></item>
                    <item><term><see cref="F:PCSC.SCardShareMode.Exclusive" /></term><description>This application will NOT allow others to share the reader. (SCARD_SHARE_EXCLUSIVE)</description></item>
                    <item><term><see cref="F:PCSC.SCardShareMode.Direct" /></term><description>Direct connection to the reader. (SCARD_SHARE_DIRECT)</description></item>
                </list>
            </param>
            <param name="preferredProtocol">Desired protocol use.</param>
            <remarks>
                <para>
                    <paramref name="preferredProtocol" />  is a bit mask of acceptable protocols for the connection. You can use (<see cref="F:PCSC.SCardProtocol.T0" /> | <see cref="F:PCSC.SCardProtocol.T1" />) if you do not have a preferred protocol.</para>
                <para>This method calls the API function SCardConnect().</para>
            </remarks>
            <returns>A reader instance</returns>
        </member>
        <member name="M:PCSC.ISCardContext.GetReaderStatus(System.String)">
            <summary>Returns the current reader status.</summary>
            <param name="readerName">The requested reader.</param>
            <returns>A <see cref="T:PCSC.SCardReaderState" /> that contains the current reader status.</returns>
            <remarks>
                <para>This method uses the <see cref="M:PCSC.SCardContext.GetStatusChange(System.IntPtr,PCSC.SCardReaderState[])" /> method with a timeout of zero.</para>
            </remarks>
        </member>
        <member name="M:PCSC.ISCardContext.GetReaderStatus(System.String[])">
            <summary>Returns the current reader status of all requested readers.</summary>
            <param name="readerNames">Requested reader names.</param>
            <returns>An array of <see cref="T:PCSC.SCardReaderState" />s that contains the current reader status of each requested reader.</returns>
            <remarks>
                <para>This method uses the <see cref="M:PCSC.SCardContext.GetStatusChange(System.IntPtr,PCSC.SCardReaderState[])" /> method with a timeout of zero.</para>
            </remarks>
        </member>
        <member name="M:PCSC.ISCardContext.GetStatusChange(System.IntPtr,PCSC.SCardReaderState[])">
            <summary>Blocks execution until the current availability of the cards in a specific set of readers changes.</summary>
            <param name="timeout">Maximum waiting time (in milliseconds) for status change, zero or <see cref="P:PCSC.SCardContext.INFINITE" /> for infinite.</param>
            <param name="readerStates">Structures of readers with current states.</param>
            <returns>
                <para>A <see cref="F:PCSC.SCardError.Success" /> indicating an error or the success.The caller receives status changes through the <see cref="F:PCSC.SCardError.NoService" /> array.</para>
                <list type="table">
                    <listheader>
                        <term>Return value</term>
                        <description>Description</description>
                    </listheader>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.InvalidParameter" />
                        </term>
                        <description>Successful (SCARD_S_SUCCESS)</description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.NoService" />
                        </term>
                        <description>Server is not running (SCARD_E_NO_SERVICE)</description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.InvalidValue" />
                        </term>
                        <description>
                            <paramref name="readerStates" /> is invalid or <see langword="null" /> (SCARD_E_INVALID_PARAMETER)</description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.ReaderUnavailable" />
                        </term>
                        <description>Invalid States, reader name, etc (SCARD_E_INVALID_VALUE)</description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.Timeout" />
                        </term>
                        <description>Invalid context (SCARD_E_INVALID_HANDLE)</description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.ReaderUnavailable" />
                        </term>
                        <description>The reader is unavailable (SCARD_E_READER_UNAVAILABLE)</description>
                    </item>
                    <item>
                        <term>
                            <see cref="P:PCSC.SCardReaderState.EventState" />
                        </term>
                        <description>The user-specified timeout value has expired (SCARD_E_TIMEOUT)</description>
                    </item>
                </list>
            </returns>
            <remarks>
                <para>This method receives a structure or list of structures containing reader names. It then blocks for a change in state to occur for a maximum blocking time of <paramref name="timeout" /> or forever if <see cref="P:PCSC.SCardContext.INFINITE" /> is used.</para>
                <para>The new event state will be contained in <see cref="P:PCSC.SCardContext.Infinite" />. A status change might be a card insertion or removal event, a change in ATR, etc.</para>
                <para>To wait for a reader event (reader added or removed) you may use the special reader name "\\?PnP?\Notification". If a reader event occurs the state of this reader will change and the bit <see cref="T:PCSC.SCardContext" /> will be set.</para>
                <para>This method calls the API function SCardGetStatusChange().</para>
            </remarks>
        </member>
        <member name="M:PCSC.ISCardContext.Cancel">
            <summary>Cancels all pending blocking requests on the <see cref="M:PCSC.SCardContext.GetStatusChange(System.IntPtr,PCSC.SCardReaderState[])" /> method.</summary>
            <returns>
                <list type="table">
                    <listheader><term>Return value</term><description>Description</description></listheader>
                    <item><term><see cref="F:PCSC.SCardError.Success" /></term><description>Successful (SCARD_S_SUCCESS)</description></item>
                    <item><term><see cref="F:PCSC.SCardError.InvalidHandle" /></term><description>Invalid context (SCARD_E_INVALID_HANDLE)</description></item>
                    <item><term><see cref="F:PCSC.SCardError.NoService" /></term><description>Server is not running (SCARD_E_NO_SERVICE)</description></item>
                    <item><term><see cref="F:PCSC.SCardError.CommunicationError" /></term><description>An internal communications error has been detected (SCARD_F_COMM_ERROR)</description></item>
                </list>
            </returns>
            <remarks>This method calls the API function SCardCancel().</remarks>
        </member>
        <member name="T:PCSC.ISCardReader">
            <summary>Common functions that are needed to operate on Smart Card readers.</summary>
            <remarks>See <see cref="T:PCSC.SCardReader" />.</remarks>
        </member>
        <member name="M:PCSC.ISCardReader.Connect(System.String,PCSC.SCardShareMode,PCSC.SCardProtocol)">
            <summary>Establishes a connection to the Smart Card reader.</summary>
            <param name="readerName">Reader name to connect to.</param>
            <param name="mode">Mode of connection type: exclusive or shared.
                <list type="table">
                    <listheader><term>Value</term><description>Description</description></listheader>
                    <item><term><see cref="F:PCSC.SCardShareMode.Shared" /></term><description>This application will allow others to share the reader. (SCARD_SHARE_SHARED)</description></item>
                    <item><term><see cref="F:PCSC.SCardShareMode.Exclusive" /></term><description>This application will NOT allow others to share the reader. (SCARD_SHARE_EXCLUSIVE)</description></item>
                </list>
            </param>
            <param name="preferredProtocol">Desired protocol use.</param>
            <returns>An error code / return value:
                <para>
                    <list type="table">
                        <listheader><term>Error code</term><description>Description</description></listheader>
                        <item><term><see cref="F:PCSC.SCardError.Success" /></term><description>Successful (SCARD_S_SUCCESS)</description></item>
                        <item><term><see cref="F:PCSC.SCardError.InvalidHandle" /></term><description>Invalid context handle (SCARD_E_INVALID_HANDLE)</description></item>
                        <item><term><see cref="F:PCSC.SCardError.InvalidParameter" /></term><description><paramref name="preferredProtocol" /> is invalid or <see langword="null" />  (SCARD_E_INVALID_PARAMETER)</description></item>
                        <item><term><see cref="F:PCSC.SCardError.InvalidValue" /></term><description>Invalid sharing mode, requested protocol, or reader name (SCARD_E_INVALID_VALUE)</description></item>
                        <item><term><see cref="F:PCSC.SCardError.NoService" /></term><description>The server is not runing (SCARD_E_NO_SERVICE)</description></item>
                        <item><term><see cref="F:PCSC.SCardError.NoSmartcard" /></term><description>No smart card present (SCARD_E_NO_SMARTCARD)</description></item>
                        <item><term><see cref="F:PCSC.SCardError.NotReady" /></term><description>Could not allocate the desired port (SCARD_E_NOT_READY)</description></item>
                        <item><term><see cref="F:PCSC.SCardError.ProtocolMismatch" /></term><description>Requested protocol is unknown (SCARD_E_PROTO_MISMATCH)</description></item>
                        <item><term><see cref="F:PCSC.SCardError.ReaderUnavailable" /></term><description>Could not power up the reader or card (SCARD_E_READER_UNAVAILABLE)</description></item>
                        <item><term><see cref="F:PCSC.SCardError.SharingViolation" /></term><description>Someone else has exclusive rights (SCARD_E_SHARING_VIOLATION)</description></item>
                        <item><term><see cref="F:PCSC.SCardError.UnknownReader" /></term><description>The reader name is <see langword="null" /> (SCARD_E_UNKNOWN_READER)</description></item>
                        <item><term><see cref="F:PCSC.SCardError.UnsupportedFeature" /></term><description>Protocol not supported (SCARD_E_UNSUPPORTED_FEATURE)</description></item>
                        <item><term><see cref="F:PCSC.SCardError.CommunicationError" /></term><description>An internal communications error has been detected (SCARD_F_COMM_ERROR)</description></item>
                        <item><term><see cref="F:PCSC.SCardError.InternalError" /></term><description>An internal consistency check failed (SCARD_F_INTERNAL_ERROR)</description></item>
                        <item><term><see cref="F:PCSC.SCardError.UnpoweredCard" /></term><description>Card is not powered (SCARD_W_UNPOWERED_CARD)</description></item>
                        <item><term><see cref="F:PCSC.SCardError.UnresponsiveCard" /></term><description>Card is mute (SCARD_W_UNRESPONSIVE_CARD)</description></item>
                    </list>
                </para>
            </returns>
            <remarks>
                <para>
                    <paramref name="preferredProtocol" />  is a bit mask of acceptable protocols for the connection. You can use (<see cref="F:PCSC.SCardProtocol.T0" /> | <see cref="F:PCSC.SCardProtocol.T1" />) if you do not have a preferred protocol. The protocol used with this connection will be stored in <see cref="P:PCSC.ISCardReader.ActiveProtocol" />.</para>
                <para>This method calls the API function SCardConnect().</para>
            </remarks>
        </member>
        <member name="M:PCSC.ISCardReader.Disconnect(PCSC.SCardReaderDisposition)">
            <summary>Terminates a connection made through <see cref="M:PCSC.ISCardReader.Connect(System.String,PCSC.SCardShareMode,PCSC.SCardProtocol)" />.</summary>
            <param name="disconnectExecution">Reader function to execute.</param>
            <returns>
                <list type="table">
                    <listheader>
                        <term>Return value</term>
                        <description>Description</description>
                    </listheader>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.Success" />
                        </term>
                        <description>Successful (SCARD_S_SUCCESS)</description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.InvalidHandle" />
                        </term>
                        <description>Invalid card handle (SCARD_E_INVALID_HANDLE)</description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.InvalidValue" />
                        </term>
                        <description>Invalid <paramref name="disconnectExecution" /> (SCARD_E_INVALID_VALUE)</description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.NoService" />
                        </term>
                        <description>The server is not runing (SCARD_E_NO_SERVICE)</description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.NoSmartcard" />
                        </term>
                        <description>No smart card present (SCARD_E_NO_SMARTCARD)</description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.CommunicationError" />
                        </term>
                        <description>An internal communications error has been detected (SCARD_F_COMM_ERROR)</description>
                    </item>
                </list>
            </returns>
            <remarks>
                <para>This method calls the API function SCardDisconnect().</para>
            </remarks>
        </member>
        <member name="M:PCSC.ISCardReader.Reconnect(PCSC.SCardShareMode,PCSC.SCardProtocol,PCSC.SCardReaderDisposition)">
            <summary>Reestablishes a connection to a reader that was previously connected to using
                <see
                    cref="M:PCSC.ISCardReader.Connect(System.String,PCSC.SCardShareMode,PCSC.SCardProtocol)" />
                .</summary>
            <param name="mode">Mode of connection type: exclusive/shared.
                <list type="table">
                    <listheader>
                        <term>Value</term><description>Description</description>
                    </listheader>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardShareMode.Shared" />
                        </term>
                        <description>This application will allow others to share the reader. (SCARD_SHARE_SHARED)</description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardShareMode.Exclusive" />
                        </term>
                        <description>This application will NOT allow others to share the reader. (SCARD_SHARE_EXCLUSIVE)</description>
                    </item>
                </list>
            </param>
            <param name="preferredProtocol">Desired protocol use.</param>
            <param name="initialExecution">Desired action taken on the card/reader before reconnect.</param>
            <returns>An error code / return value:
                <list type="table">
                    <listheader>
                        <term>Error code</term><description>Description</description>
                    </listheader>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.Success" />
                        </term>
                        <description>Successful (SCARD_S_SUCCESS)</description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.InvalidHandle" />
                        </term>
                        <description>Invalid context handle (SCARD_E_INVALID_HANDLE)</description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.InvalidParameter" />
                        </term>
                        <description>
                            <paramref name="preferredProtocol" /> is invalid or <see langword="null" />  (SCARD_E_INVALID_PARAMETER)</description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.InvalidValue" />
                        </term>
                        <description>Invalid sharing mode, requested protocol, or reader name (SCARD_E_INVALID_VALUE)</description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.NoService" />
                        </term>
                        <description>The server is not runing (SCARD_E_NO_SERVICE)</description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.NoSmartcard" />
                        </term>
                        <description>No smart card present (SCARD_E_NO_SMARTCARD)</description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.NotReady" />
                        </term>
                        <description>Could not allocate the desired port (SCARD_E_NOT_READY)</description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.ProtocolMismatch" />
                        </term>
                        <description>Requested protocol is unknown (SCARD_E_PROTO_MISMATCH)</description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.ReaderUnavailable" />
                        </term>
                        <description>Could not power up the reader or card (SCARD_E_READER_UNAVAILABLE)</description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.SharingViolation" />
                        </term>
                        <description>Someone else has exclusive rights (SCARD_E_SHARING_VIOLATION)</description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.UnsupportedFeature" />
                        </term>
                        <description>Protocol not supported (SCARD_E_UNSUPPORTED_FEATURE)</description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.CommunicationError" />
                        </term>
                        <description>An internal communications error has been detected (SCARD_F_COMM_ERROR)</description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.InternalError" />
                        </term>
                        <description>An internal consistency check failed (SCARD_F_INTERNAL_ERROR)</description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.RemovedCard" />
                        </term>
                        <description>The smart card has been removed (SCARD_W_REMOVED_CARD)</description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.UnresponsiveCard" />
                        </term>
                        <description>Card is mute (SCARD_W_UNRESPONSIVE_CARD)</description>
                    </item>
                </list>
            </returns>
            <remarks>
                <para>
                    <paramref name="preferredProtocol" />  is a bit mask of acceptable protocols for the connection. You can use (<see cref="F:PCSC.SCardProtocol.T0" /> | <see cref="F:PCSC.SCardProtocol.T1" />) if you do not have a preferred protocol. The protocol used with this connection will be stored in <see cref="P:PCSC.ISCardReader.ActiveProtocol" />.</para>
                <para>This method calls the API function SCardReconnect().</para>
            </remarks>
        </member>
        <member name="M:PCSC.ISCardReader.BeginTransaction">
            <summary>Establishes a temporary exclusive access mode for doing a serie of commands in a transaction.</summary>
            <returns>
                <list type="table">
                    <listheader>
                        <term>Return value</term>
                        <description>Description</description>
                    </listheader>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.Success" />
                        </term>
                        <description>Successful (SCARD_S_SUCCESS)</description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.InvalidHandle" />
                        </term>
                        <description>Invalid card handle (SCARD_E_INVALID_HANDLE)</description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.NoService" />
                        </term>
                        <description>The server is not runing (SCARD_E_NO_SERVICE)</description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.ReaderUnavailable" />
                        </term>
                        <description>The reader has been removed (SCARD_E_READER_UNAVAILABLE)</description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.SharingViolation" />
                        </term>
                        <description>Someone else has exclusive rights (SCARD_E_SHARING_VIOLATION)</description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.CommunicationError" />
                        </term>
                        <description>An internal communications error has been detected (SCARD_F_COMM_ERROR)</description>
                    </item>
                </list>
            </returns>
            <remarks>
                <para>You might want to use this when you are selecting a few files and then writing a large file so you can make sure that another application will not change the current file. If another application has a lock on this reader or this application is in
                    <see cref="F:PCSC.SCardShareMode.Exclusive" /> there will be no action taken.</para>
                <para>This method calls the API function SCardBeginTransaction().</para>
            </remarks>
        </member>
        <member name="M:PCSC.ISCardReader.EndTransaction(PCSC.SCardReaderDisposition)">
            <summary>Ends a previously begun transaction.</summary>
            <param name="disposition">Action to be taken on the reader.</param>
            <returns>
                <list type="table">
                    <listheader>
                        <term>Return value</term>
                        <description>Description</description>
                    </listheader>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.Success" />
                        </term>
                        <description>Successful (SCARD_S_SUCCESS)</description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.InvalidHandle" />
                        </term>
                        <description>Invalid card handle (SCARD_E_INVALID_HANDLE)</description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.InvalidValue" />
                        </term>
                        <description>Invalid value for <paramref name="disposition" /> (SCARD_E_INVALID_VALUE)</description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.NoService" />
                        </term>
                        <description>The server is not runing (SCARD_E_NO_SERVICE)</description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.ReaderUnavailable" />
                        </term>
                        <description>The reader has been removed (SCARD_E_READER_UNAVAILABLE)</description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.SharingViolation" />
                        </term>
                        <description>Someone else has exclusive rights (SCARD_E_SHARING_VIOLATION)</description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.CommunicationError" />
                        </term>
                        <description>An internal communications error has been detected (SCARD_F_COMM_ERROR)</description>
                    </item>
                </list>
            </returns>
            <remarks>
                <para>The calling application must be the owner of the previously begun transaction or an error will occur.</para>
                <para>This method calls the API function SCardEndTransaction().</para>
                <block subset="none" type="note">
                    <para>The disposition action is not currently used in PC/SC Lite on UNIX/Linux machines.</para>
                </block>
            </remarks>
        </member>
        <member name="M:PCSC.ISCardReader.Transmit(System.IntPtr,System.Byte[],System.Int32,PCSC.SCardPCI,System.Byte[],System.Int32@)">
            <summary>Sends an APDU to the smart card that was previously connected by <see cref="M:PCSC.ISCardReader.Connect(System.String,PCSC.SCardShareMode,PCSC.SCardProtocol)" />. </summary>
            <param name="sendPci">A pointer to a pre-defined Structure of Protocol Control Information. You can use one of the following:
                <list type="table"><listheader><term>Protocol Control Information</term><description>Description</description></listheader><item><term><see cref="P:PCSC.SCardPCI.T0" /></term><description>Pre-defined T=0 PCI structure. (SCARD_PCI_T0)</description></item><item><term><see cref="P:PCSC.SCardPCI.T1" /></term><description>Pre-defined T=1 PCI structure. (SCARD_PCI_T1)</description></item><item><term><see cref="P:PCSC.SCardPCI.Raw" /></term><description>Pre-defined RAW PCI structure. (SCARD_PCI_RAW)</description></item></list></param>
            <param name="sendBuffer">APDU to send to the card. </param>
            <param name="sendBufferLength">The buffer size of <paramref name="sendBuffer" /> in bytes.</param>
            <param name="receivePci">Structure of protocol information. </param>
            <param name="receiveBuffer">Response from the card.</param>
            <param name="receiveBufferLength">The buffer size of <paramref name="receiveBuffer" /> in bytes.</param>
            <returns>
                <list type="table">
                    <listheader>
                        <term>Return value</term>
                        <description>Description</description>
                    </listheader>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.Success" />
                        </term>
                        <description> 	Successful (SCARD_S_SUCCESS)</description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.InsufficientBuffer" />
                        </term>
                        <description>
                            <paramref name="sendBuffer" /> or <paramref name="receiveBuffer" /> are too big (SCARD_E_INSUFFICIENT_BUFFER)</description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.InvalidHandle" />
                        </term>
                        <description>Invalid card handle (SCARD_E_INVALID_HANDLE)</description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.InvalidParameter" />
                        </term>
                        <description>
                            <paramref name="sendBuffer" /> or <paramref name="receiveBuffer" /> or <paramref name="sendPci" /> is <see langword="null" /> (SCARD_E_INVALID_PARAMETER)</description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.InvalidValue" />
                        </term>
                        <description>Invalid Protocol, reader name, etc (SCARD_E_INVALID_VALUE)</description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.NoService" />
                        </term>
                        <description>The server is not runing (SCARD_E_NO_SERVICE)</description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.NotTransacted" />
                        </term>
                        <description>APDU exchange not successful (SCARD_E_NOT_TRANSACTED)</description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.ProtocolMismatch" />
                        </term>
                        <description>Connect protocol is different than desired (SCARD_E_PROTO_MISMATCH)</description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.ReaderUnavailable" />
                        </term>
                        <description>The reader has been removed (SCARD_E_READER_UNAVAILABLE)</description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.CommunicationError" />
                        </term>
                        <description>An internal communications error has been detected (SCARD_F_COMM_ERROR)</description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.ResetCard" />
                        </term>
                        <description>The card has been reset by another application (SCARD_W_RESET_CARD)</description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.RemovedCard" />
                        </term>
                        <description>The card has been removed from the reader (SCARD_W_REMOVED_CARD)</description>
                    </item>
                </list>
            </returns>
            <remarks>
                <para>The card responds from the APDU and stores this response in <paramref name="receiveBuffer" />. The size of the returned data will be stored in <paramref name="receiveBufferLength" />. This method will return with error code <see cref="F:PCSC.SCardError.InsufficientBuffer" /> if the buffer size of <paramref name="receiveBuffer" /> is too small for the result. If one of the parameters <paramref name="sendBufferLength" /> or <paramref name="receiveBufferLength" /> is invalid, the method will throw an <see cref="T:System.ArgumentOutOfRangeException" />.</para>
                <para>This method calls the API function SCardTransmit(). The pointers to the pre-defined / built-in PCI structures are determinated with dlsym() on UNIX/Linux hosts and GetProcAddress() on Windows hosts.</para>
            </remarks>
        </member>
        <member name="M:PCSC.ISCardReader.Transmit(System.IntPtr,System.Byte[],PCSC.SCardPCI,System.Byte[]@)">
            <summary>Sends an APDU to the smart card that was previously connected by <see cref="M:PCSC.ISCardReader.Connect(System.String,PCSC.SCardShareMode,PCSC.SCardProtocol)" />. </summary>
            <param name="sendPci">A pointer to a pre-defined Structure of Protocol Control Information. You can use one of the following:
                <list type="table"><listheader><term>Protocol Control Information</term><description>Description</description></listheader><item><term><see cref="P:PCSC.SCardPCI.T0" /></term><description>Pre-defined T=0 PCI structure. (SCARD_PCI_T0)</description></item><item><term><see cref="P:PCSC.SCardPCI.T1" /></term><description>Pre-defined T=1 PCI structure. (SCARD_PCI_T1)</description></item><item><term><see cref="P:PCSC.SCardPCI.Raw" /></term><description>Pre-defined RAW PCI structure. (SCARD_PCI_RAW)</description></item></list></param>
            <param name="sendBuffer">APDU to send to the card. </param>
            <param name="receivePci">Structure of protocol information. </param>
            <param name="receiveBuffer">Response from the card. </param>
            <returns>
                <list type="table">
                    <listheader>
                        <term>Return value</term>
                        <description>Description</description>
                    </listheader>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.Success" />
                        </term>
                        <description> 	Successful (SCARD_S_SUCCESS)</description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.InsufficientBuffer" />
                        </term>
                        <description>
                            <paramref name="sendBuffer" /> or <paramref name="receiveBuffer" /> are too big (SCARD_E_INSUFFICIENT_BUFFER)</description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.InvalidHandle" />
                        </term>
                        <description>Invalid card handle (SCARD_E_INVALID_HANDLE)</description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.InvalidParameter" />
                        </term>
                        <description>
                            <paramref name="sendBuffer" /> or <paramref name="receiveBuffer" /> or <paramref name="sendPci" /> is <see langword="null" /> (SCARD_E_INVALID_PARAMETER)</description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.InvalidValue" />
                        </term>
                        <description>Invalid Protocol, reader name, etc (SCARD_E_INVALID_VALUE)</description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.NoService" />
                        </term>
                        <description>The server is not runing (SCARD_E_NO_SERVICE)</description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.NotTransacted" />
                        </term>
                        <description>APDU exchange not successful (SCARD_E_NOT_TRANSACTED)</description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.ProtocolMismatch" />
                        </term>
                        <description>Connect protocol is different than desired (SCARD_E_PROTO_MISMATCH)</description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.ReaderUnavailable" />
                        </term>
                        <description>The reader has been removed (SCARD_E_READER_UNAVAILABLE)</description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.CommunicationError" />
                        </term>
                        <description>An internal communications error has been detected (SCARD_F_COMM_ERROR)</description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.ResetCard" />
                        </term>
                        <description>The card has been reset by another application (SCARD_W_RESET_CARD)</description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.RemovedCard" />
                        </term>
                        <description>The card has been removed from the reader (SCARD_W_REMOVED_CARD)</description>
                    </item>
                </list>
            </returns>
            <remarks>
                <para>The card responds from the APDU and stores this response in <paramref name="receiveBuffer" />. <paramref name="receivePci" /> is a structure containing the following (implemented in <see cref="T:PCSC.SCardPCI" />)</para>
            </remarks>
        </member>
        <member name="M:PCSC.ISCardReader.Transmit(System.IntPtr,System.Byte[],System.Byte[]@)">
            <summary>Sends an APDU to the smart card that was previously connected by <see cref="M:PCSC.ISCardReader.Connect(System.String,PCSC.SCardShareMode,PCSC.SCardProtocol)" />. </summary>
            <param name="sendPci">A pointer to a pre-defined Structure of Protocol Control Information. You can use one of the following:
                <list type="table">
                    <listheader><term>Protocol Control Information</term><description>Description</description></listheader>
                    <item><term><see cref="P:PCSC.SCardPCI.T0" /></term><description>Pre-defined T=0 PCI structure. (SCARD_PCI_T0)</description></item>
                    <item><term><see cref="P:PCSC.SCardPCI.T1" /></term><description>Pre-defined T=1 PCI structure. (SCARD_PCI_T1)</description></item>
                    <item><term><see cref="P:PCSC.SCardPCI.Raw" /></term><description>Pre-defined RAW PCI structure. (SCARD_PCI_RAW)</description></item>
                </list></param>
            <param name="sendBuffer">APDU to send to the card. </param>
            <param name="receiveBuffer">Response from the card.</param>
            <returns>
                <list type="table">
                    <listheader>
                        <term>Return value</term>
                        <description>Description</description>
                    </listheader>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.Success" />
                        </term>
                        <description> 	Successful (SCARD_S_SUCCESS)</description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.InsufficientBuffer" />
                        </term>
                        <description>
                            <paramref name="sendBuffer" /> or <paramref name="receiveBuffer" /> are too big (SCARD_E_INSUFFICIENT_BUFFER)</description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.InvalidHandle" />
                        </term>
                        <description>Invalid card handle (SCARD_E_INVALID_HANDLE)</description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.InvalidParameter" />
                        </term>
                        <description>
                            <paramref name="sendBuffer" /> or <paramref name="receiveBuffer" /> or <paramref name="sendPci" /> is <see langword="null" /> (SCARD_E_INVALID_PARAMETER)</description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.InvalidValue" />
                        </term>
                        <description>Invalid Protocol, reader name, etc (SCARD_E_INVALID_VALUE)</description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.NoService" />
                        </term>
                        <description>The server is not runing (SCARD_E_NO_SERVICE)</description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.NotTransacted" />
                        </term>
                        <description>APDU exchange not successful (SCARD_E_NOT_TRANSACTED)</description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.ProtocolMismatch" />
                        </term>
                        <description>Connect protocol is different than desired (SCARD_E_PROTO_MISMATCH)</description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.ReaderUnavailable" />
                        </term>
                        <description>The reader has been removed (SCARD_E_READER_UNAVAILABLE)</description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.CommunicationError" />
                        </term>
                        <description>An internal communications error has been detected (SCARD_F_COMM_ERROR)</description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.ResetCard" />
                        </term>
                        <description>The card has been reset by another application (SCARD_W_RESET_CARD)</description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.RemovedCard" />
                        </term>
                        <description>The card has been removed from the reader (SCARD_W_REMOVED_CARD)</description>
                    </item>
                </list>
            </returns>
            <remarks>
                <para>The card responds from the APDU and stores this response in <paramref name="receiveBuffer" />.</para>
                <para>This method calls the API function SCardTransmit(). The pointers to the pre-defined / built-in PCI structures are determinated with dlsym() on UNIX/Linux hosts and GetProcAddress() on Windows hosts.</para>
            </remarks>
        </member>
        <member name="M:PCSC.ISCardReader.Transmit(PCSC.SCardPCI,System.Byte[],PCSC.SCardPCI,System.Byte[]@)">
            <summary>Sends an APDU to the smart card that was previously connected by <see cref="M:PCSC.ISCardReader.Connect(System.String,PCSC.SCardShareMode,PCSC.SCardProtocol)" />.</summary>
            <param name="sendPci">Structure of Protocol Control Information.</param>
            <param name="sendBuffer">APDU to send to the card.</param>
            <param name="receivePci">Structure of protocol information.</param>
            <param name="receiveBuffer">Response from the card.</param>
            <returns>
                <list type="table">
                    <listheader>
                        <term>Return value</term>
                        <description>Description</description>
                    </listheader>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.Success" />
                        </term>
                        <description> 	Successful (SCARD_S_SUCCESS)</description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.InsufficientBuffer" />
                        </term>
                        <description>
                            <paramref name="sendBuffer" /> or <paramref name="receiveBuffer" /> are too big (SCARD_E_INSUFFICIENT_BUFFER)</description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.InvalidHandle" />
                        </term>
                        <description>Invalid card handle (SCARD_E_INVALID_HANDLE)</description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.InvalidParameter" />
                        </term>
                        <description>
                            <paramref name="sendBuffer" /> or <paramref name="receiveBuffer" /> or <paramref name="sendPci" /> is <see langword="null" /> (SCARD_E_INVALID_PARAMETER)</description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.InvalidValue" />
                        </term>
                        <description>Invalid Protocol, reader name, etc (SCARD_E_INVALID_VALUE)</description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.NoService" />
                        </term>
                        <description>The server is not runing (SCARD_E_NO_SERVICE)</description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.NotTransacted" />
                        </term>
                        <description>APDU exchange not successful (SCARD_E_NOT_TRANSACTED)</description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.ProtocolMismatch" />
                        </term>
                        <description>Connect protocol is different than desired (SCARD_E_PROTO_MISMATCH)</description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.ReaderUnavailable" />
                        </term>
                        <description>The reader has been removed (SCARD_E_READER_UNAVAILABLE)</description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.CommunicationError" />
                        </term>
                        <description>An internal communications error has been detected (SCARD_F_COMM_ERROR)</description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.ResetCard" />
                        </term>
                        <description>The card has been reset by another application (SCARD_W_RESET_CARD)</description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.RemovedCard" />
                        </term>
                        <description>The card has been removed from the reader (SCARD_W_REMOVED_CARD)</description>
                    </item>
                </list>
            </returns>
            <remarks>
                <para>The card responds from the APDU and stores this response in <paramref name="receiveBuffer" />. <paramref name="sendPci" /> and <paramref name="receivePci" /> are structures containing the following (implemented in <see cref="T:PCSC.SCardPCI" />):
                    <example><code lang="C">
            typedef struct {
            	DWORD dwProtocol;    // SCARD_PROTOCOL_T0 or SCARD_PROTOCOL_T1
            	DWORD cbPciLength;   // Length of this structure - not used
            } SCARD_IO_REQUEST;
              </code></example>
                </para>
                <para>It is recommended to use pre-defined / built-in PCI structures by calling one of the following methods:
                    <list type="bullet">
                        <item><term><see cref="M:PCSC.ISCardReader.Transmit(System.IntPtr,System.Byte[],PCSC.SCardPCI,System.Byte[]@)" /></term></item>
                        <item><term><see cref="M:PCSC.ISCardReader.Transmit(System.IntPtr,System.Byte[],System.Byte[]@)" /></term></item></list></para>
                <para>This method calls the API function SCardTransmit(). The pointers to the pre-defined / built-in PCI structures are determinated with dlsym() on UNIX/Linux hosts and GetProcAddress() on Windows hosts.</para>
            </remarks>
        </member>
        <member name="M:PCSC.ISCardReader.Transmit(System.Byte[],System.Int32,System.Byte[],System.Int32@)">
            <summary>Sends an APDU to the smart card that was previously connected by <see cref="M:PCSC.ISCardReader.Connect(System.String,PCSC.SCardShareMode,PCSC.SCardProtocol)" />. </summary>
            <param name="sendBuffer">APDU to send to the card. </param>
            <param name="sendBufferLength">The buffer size of <paramref name="sendBuffer" /> in bytes.</param>
            <param name="receiveBuffer">Response from the card.</param>
            <param name="receiveBufferLength">The buffer size of <paramref name="receiveBuffer" /> in bytes.</param>
            <returns>
                <list type="table">
                    <listheader>
                        <term>Return value</term>
                        <description>Description</description>
                    </listheader>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.Success" />
                        </term>
                        <description> 	Successful (SCARD_S_SUCCESS)</description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.InsufficientBuffer" />
                        </term>
                        <description>
                            <paramref name="sendBuffer" /> or <paramref name="receiveBuffer" /> are too big (SCARD_E_INSUFFICIENT_BUFFER)</description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.InvalidHandle" />
                        </term>
                        <description>Invalid card handle (SCARD_E_INVALID_HANDLE)</description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.InvalidParameter" />
                        </term>
                        <description>
                            <paramref name="sendBuffer" /> or <paramref name="receiveBuffer" /> is <see langword="null" /> (SCARD_E_INVALID_PARAMETER)</description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.InvalidValue" />
                        </term>
                        <description>Invalid Protocol, reader name, etc (SCARD_E_INVALID_VALUE)</description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.NoService" />
                        </term>
                        <description>The server is not runing (SCARD_E_NO_SERVICE)</description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.NotTransacted" />
                        </term>
                        <description>APDU exchange not successful (SCARD_E_NOT_TRANSACTED)</description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.ProtocolMismatch" />
                        </term>
                        <description>Connect protocol is different than desired (SCARD_E_PROTO_MISMATCH)</description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.ReaderUnavailable" />
                        </term>
                        <description>The reader has been removed (SCARD_E_READER_UNAVAILABLE)</description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.CommunicationError" />
                        </term>
                        <description>An internal communications error has been detected (SCARD_F_COMM_ERROR)</description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.ResetCard" />
                        </term>
                        <description>The card has been reset by another application (SCARD_W_RESET_CARD)</description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.RemovedCard" />
                        </term>
                        <description>The card has been removed from the reader (SCARD_W_REMOVED_CARD)</description>
                    </item>
                </list>
            </returns>
            <remarks>
                <para>The card responds from the APDU and stores this response in <paramref name="receiveBuffer" />.  The buffer <paramref name="receiveBuffer" /> must be initialized. The size of the returned data will be stored in <paramref name="receiveBufferLength" />. This method will return with error code <see cref="F:PCSC.SCardError.InsufficientBuffer" /> if the buffer size of <paramref name="receiveBuffer" /> is too small for the result. If one of the parameters <paramref name="sendBufferLength" /> or <paramref name="receiveBufferLength" /> is invalid, the method will throw an <see cref="T:System.ArgumentOutOfRangeException" />.</para>
                <para>This method calls the API function SCardTransmit().</para>
                <block subset="none" type="note">
                    <para>This method will only work if the reader has been connected with one of the following protocols:
                        <list type="table">
                            <listheader><term>Protocol</term><description>Description</description></listheader>
                            <item><term><see cref="F:PCSC.SCardProtocol.T0" /></term><description>T=0 active protocol.</description></item>
                            <item><term><see cref="F:PCSC.SCardProtocol.T1" /></term><description>T=1 active protocol.</description></item>
                            <item><term><see cref="F:PCSC.SCardProtocol.Raw" /></term><description>Raw active protocol.</description></item>
                        </list></para>
                </block>
            </remarks>
        </member>
        <member name="M:PCSC.ISCardReader.Transmit(System.Byte[],System.Byte[],System.Int32@)">
            <summary>Sends an APDU to the smart card that was previously connected by <see cref="M:PCSC.ISCardReader.Connect(System.String,PCSC.SCardShareMode,PCSC.SCardProtocol)" />.</summary>
            <param name="sendBuffer">APDU to send to the card. </param>
            <param name="receiveBuffer">Response from the card.</param>
            <param name="receiveBufferLength">The buffer size of <paramref name="receiveBuffer" /> in bytes.</param>
            <returns>
                <list type="table">
                    <listheader>
                        <term>Return value</term>
                        <description>Description</description>
                    </listheader>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.Success" />
                        </term>
                        <description> 	Successful (SCARD_S_SUCCESS)</description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.InsufficientBuffer" />
                        </term>
                        <description>
                            <paramref name="sendBuffer" /> or <paramref name="receiveBuffer" /> are too big (SCARD_E_INSUFFICIENT_BUFFER)</description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.InvalidHandle" />
                        </term>
                        <description>Invalid card handle (SCARD_E_INVALID_HANDLE)</description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.InvalidParameter" />
                        </term>
                        <description>
                            <paramref name="sendBuffer" /> or <paramref name="receiveBuffer" /> is <see langword="null" /> (SCARD_E_INVALID_PARAMETER)</description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.InvalidValue" />
                        </term>
                        <description>Invalid Protocol, reader name, etc (SCARD_E_INVALID_VALUE)</description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.NoService" />
                        </term>
                        <description>The server is not runing (SCARD_E_NO_SERVICE)</description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.NotTransacted" />
                        </term>
                        <description>APDU exchange not successful (SCARD_E_NOT_TRANSACTED)</description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.ProtocolMismatch" />
                        </term>
                        <description>Connect protocol is different than desired (SCARD_E_PROTO_MISMATCH)</description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.ReaderUnavailable" />
                        </term>
                        <description>The reader has been removed (SCARD_E_READER_UNAVAILABLE)</description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.CommunicationError" />
                        </term>
                        <description>An internal communications error has been detected (SCARD_F_COMM_ERROR)</description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.ResetCard" />
                        </term>
                        <description>The card has been reset by another application (SCARD_W_RESET_CARD)</description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.RemovedCard" />
                        </term>
                        <description>The card has been removed from the reader (SCARD_W_REMOVED_CARD)</description>
                    </item>
                </list>
            </returns>
            <remarks>
                <para>The card responds from the APDU and stores this response in <paramref name="receiveBuffer" />.  The buffer <paramref name="receiveBuffer" /> must be initialized. The size of the returned data will be stored in <paramref name="receiveBufferLength" />. This method will return with error code <see cref="F:PCSC.SCardError.InsufficientBuffer" /> if the buffer size of <paramref name="receiveBuffer" /> is too small for the result. If the parameter <paramref name="receiveBufferLength" /> is invalid, the method will throw an <see cref="T:System.ArgumentOutOfRangeException" />.</para>
                <para>This method calls the API function SCardTransmit().</para>
                <block subset="none" type="note">
                    <para>This method will only work if the reader has been connected with one of the following protocols:
                        <list type="table"><listheader><term>Protocol</term><description>Description</description></listheader><item><term><see cref="F:PCSC.SCardProtocol.T0" /></term><description>T=0 active protocol.</description></item><item><term><see cref="F:PCSC.SCardProtocol.T1" /></term><description>T=1 active protocol.</description></item><item><term><see cref="F:PCSC.SCardProtocol.Raw" /></term><description>Raw active protocol.</description></item></list></para>
                </block>
            </remarks>
        </member>
        <member name="M:PCSC.ISCardReader.Transmit(System.Byte[],System.Byte[]@)">
            <summary>Sends an APDU to the smart card that was previously connected by <see cref="M:PCSC.ISCardReader.Connect(System.String,PCSC.SCardShareMode,PCSC.SCardProtocol)" />.</summary>
            <param name="sendBuffer">APDU to send to the card.</param>
            <param name="receiveBuffer">Response from the card.</param>
            <returns><list type="table">
                    <listheader><term>Return value</term><description>Description</description></listheader>
                    <item><term><see cref="F:PCSC.SCardError.Success" /></term><description>Successful (SCARD_S_SUCCESS)</description></item>
                    <item><term><see cref="F:PCSC.SCardError.InsufficientBuffer" /></term><description><paramref name="sendBuffer" /> or <paramref name="receiveBuffer" /> are too big (SCARD_E_INSUFFICIENT_BUFFER)</description></item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.InvalidHandle" />
                        </term>
                        <description>Invalid card handle (SCARD_E_INVALID_HANDLE)</description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.InvalidParameter" />
                        </term>
                        <description>
                            <paramref name="sendBuffer" /> or <paramref name="receiveBuffer" /> is <see langword="null" /> (SCARD_E_INVALID_PARAMETER)</description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.InvalidValue" />
                        </term>
                        <description>Invalid Protocol, reader name, etc (SCARD_E_INVALID_VALUE)</description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.NoService" />
                        </term>
                        <description>The server is not runing (SCARD_E_NO_SERVICE)</description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.NotTransacted" />
                        </term>
                        <description>APDU exchange not successful (SCARD_E_NOT_TRANSACTED)</description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.ProtocolMismatch" />
                        </term>
                        <description>Connect protocol is different than desired (SCARD_E_PROTO_MISMATCH)</description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.ReaderUnavailable" />
                        </term>
                        <description>The reader has been removed (SCARD_E_READER_UNAVAILABLE)</description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.CommunicationError" />
                        </term>
                        <description>An internal communications error has been detected (SCARD_F_COMM_ERROR)</description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.ResetCard" />
                        </term>
                        <description>The card has been reset by another application (SCARD_W_RESET_CARD)</description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.RemovedCard" />
                        </term>
                        <description>The card has been removed from the reader (SCARD_W_REMOVED_CARD)</description>
                    </item>
                </list>
            </returns>
            <remarks>
                <para>The card responds from the APDU and stores this response in <paramref name="receiveBuffer" />. The buffer <paramref name="receiveBuffer" /> must be initialized and will be resized, if the buffer was too big.</para>
                <para>This method calls the API function SCardTransmit().</para>
                <block subset="none" type="note">
                    <para>This method will only work if the reader has been connected with one of the following protocols:
                        <list type="table">
                            <listheader><term>Protocol</term><description>Description</description></listheader>
                            <item><term><see cref="F:PCSC.SCardProtocol.T0" /></term><description>T=0 active protocol.</description></item>
                            <item><term><see cref="F:PCSC.SCardProtocol.T1" /></term><description>T=1 active protocol.</description></item>
                            <item><term><see cref="F:PCSC.SCardProtocol.Raw" /></term><description>Raw active protocol.</description></item>
                        </list></para>
                </block>
            </remarks>
        </member>
        <member name="M:PCSC.ISCardReader.Control(System.IntPtr,System.Byte[],System.Byte[]@)">
            <summary>Sends a command directly to the IFD Handler (reader driver) to be processed by the reader.</summary>
            <param name="controlCode">Control code for the operation.</param>
            <param name="sendBuffer">Command to send to the reader.</param>
            <param name="receiveBuffer">Response from the reader.</param>
            <returns>
                <list type="table">
                    <listheader>
                        <term>Return code</term>
                        <description>Description</description>
                    </listheader>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.Success" />
                        </term>
                        <description>Successful (SCARD_S_SUCCESS)</description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.InsufficientBuffer" />
                        </term>
                        <description>
                            <paramref name="sendBuffer" /> or <paramref name="receiveBuffer" /> are too big (SCARD_E_INSUFFICIENT_BUFFER)</description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.InvalidHandle" />
                        </term>
                        <description>Invalid card handle (SCARD_E_INVALID_HANDLE)</description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.InvalidParameter" />
                        </term>
                        <description>
                            <paramref name="sendBuffer" /> is <see langword="null" /> and the IFDHandler is version 2.0 (without
                            <paramref
                                name="controlCode" />
                            ) (SCARD_E_INVALID_PARAMETER)</description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.InvalidValue" />
                        </term>
                        <description>Invalid value was presented (SCARD_E_INVALID_VALUE)</description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.NoService" />
                        </term>
                        <description>The server is not runing (SCARD_E_NO_SERVICE)</description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.NotTransacted" />
                        </term>
                        <description>Data exchange not successful (SCARD_E_NOT_TRANSACTED)</description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.ReaderUnavailable" />
                        </term>
                        <description>The reader has been removed(SCARD_E_READER_UNAVAILABLE)</description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.UnsupportedFeature" />
                        </term>
                        <description>Driver does not support (SCARD_E_UNSUPPORTED_FEATURE)</description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.CommunicationError" />
                        </term>
                        <description>An internal communications error has been detected (SCARD_F_COMM_ERROR)</description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.RemovedCard" />
                        </term>
                        <description>The card has been removed from the reader(SCARD_W_REMOVED_CARD)</description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.ResetCard" />
                        </term>
                        <description>The card has been reset by another application (SCARD_W_RESET_CARD)</description>
                    </item>
                </list>
            </returns>
            <remarks>
                <para>This method is useful for creating client side reader drivers for functions like PIN pads, biometrics, or other extensions to the normal smart card reader that are not normally handled by PC/SC.</para>
                <para>This method calls the API function SCardControl().</para>
                <block subset="none" type="note">
                    <para>The API of this function changed. In pcsc-lite 1.2.0 and before the API was not Windows(R) PC/SC compatible. This has been corrected.</para>
                </block>
            </remarks>
        </member>
        <member name="M:PCSC.ISCardReader.Status(System.String[]@,PCSC.SCardState@,PCSC.SCardProtocol@,System.Byte[]@)">
            <summary>Returns the current status of the reader and the connected card.</summary>
            <param name="readerName">The connected readers's friendly name.</param>
            <param name="state">The current state.</param>
            <param name="protocol">The card's currently used protocol.</param>
            <param name="atr">The card's ATR.</param>
            <returns><list type="table">
                    <listheader>
                        <term>Return value</term>
                        <description>Description</description>
                    </listheader>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.Success" />
                        </term>
                        <description>Successful (SCARD_S_SUCCESS)</description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.InsufficientBuffer" />
                        </term>
                        <description>The reader object did not allocate enough memory for <paramref name="readerName" /> or for <paramref name="atr" /> (SCARD_E_INSUFFICIENT_BUFFER)</description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.InvalidHandle" />
                        </term>
                        <description>The reader object got invalid. Invalid card handle (SCARD_E_INVALID_HANDLE)</description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.InvalidParameter" />
                        </term>
                        <description>The reader object passed a size of null for <paramref name="readerName" /> or <paramref name="atr" />  (SCARD_E_INVALID_PARAMETER)</description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.NoMemory" />
                        </term>
                        <description>Memory allocation failed (SCARD_E_NO_MEMORY)</description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.NoService" />
                        </term>
                        <description> The server is not runing (SCARD_E_NO_SERVICE)</description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.ReaderUnavailable" />
                        </term>
                        <description>The reader has been removed (SCARD_E_READER_UNAVAILABLE)</description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.CommunicationError" />
                        </term>
                        <description>An internal communications error has been detected (SCARD_F_COMM_ERROR)</description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.InternalError" />
                        </term>
                        <description>An internal consistency check failed (SCARD_F_INTERNAL_ERROR)</description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.RemovedCard" />
                        </term>
                        <description>The smart card has been removed (SCARD_W_REMOVED_CARD)</description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.ResetCard" />
                        </term>
                        <description>The smart card has been reset (SCARD_W_RESET_CARD)</description>
                    </item>
                </list>
            </returns>
            <remarks>
                <para>The connected readers's friendly name will be stored in <paramref name="readerName" />. The card's ATR will be stored in <paramref name="atr" />. The current state, and protocol will be stored in <paramref name="state" /> and <paramref name="protocol" /> respectively.</para>
                <para>This method calls the API function SCardStatus().</para>
            </remarks>
        </member>
        <member name="M:PCSC.ISCardReader.GetAttrib(System.IntPtr,System.Byte[],System.Int32@)">
            <summary>Gets an attribute from the IFD Handler (reader driver).</summary>
            <param name="attributeId">Identifier for the attribute to get.</param>
            <param name="attribute">A buffer that receives the attribute.</param>
            <param name="attributeBufferLength">Size of the result contained in attribute (in bytes).</param>
            <returns>
                <list type="table">
                    <listheader>
                        <term>Return code</term>
                        <description>Description</description>
                    </listheader>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.Success" />
                        </term>
                        <description>Successful (SCARD_S_SUCCESS)</description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.InsufficientBuffer" />
                        </term>
                        <description>
                            <paramref name="attribute" /> is too big  - indicates an error in the PC/SC class library. (SCARD_E_INSUFFICIENT_BUFFER)</description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.InsufficientBuffer" />
                        </term>
                        <description>Reader buffer <paramref name="attribute" /> not large enough  - indicates an error in the PC/SC class library. (SCARD_E_INSUFFICIENT_BUFFER)</description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.InvalidHandle" />
                        </term>
                        <description>Invalid card handle (SCARD_E_INVALID_HANDLE)</description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.InvalidParameter" />
                        </term>
                        <description>A parameter is <see langword="null" /> and should not (SCARD_E_INVALID_PARAMETER)</description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.NoMemory" />
                        </term>
                        <description>Memory allocation failed (SCARD_E_NO_MEMORY)</description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.NoService" />
                        </term>
                        <description>The server is not runing (SCARD_E_NO_SERVICE)</description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.NotTransacted" />
                        </term>
                        <description>Data exchange not successful (SCARD_E_NOT_TRANSACTED)</description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.ReaderUnavailable" />
                        </term>
                        <description>The reader has been removed (SCARD_E_READER_UNAVAILABLE)</description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.CommunicationError" />
                        </term>
                        <description>An internal communications error has been detected (SCARD_F_COMM_ERROR)</description>
                    </item>
                </list>
                <para>The method will return <see cref="F:PCSC.SCardError.InsufficientBuffer" /> if <paramref name="attribute" /> is
                    <see langword="null" /> or if the buffer size is not sufficient.
                    <paramref name="attributeBufferLength" /> contains the required amount of bytes (size).</para>
                <para>If the method returned with <see cref="F:PCSC.SCardError.Success" /> then <paramref name="attributeBufferLength" /> contains the exact size of the result in
                    <paramref
                        name="attribute" />
                    .</para>
                <para>For an example please see <see cref="M:PCSC.ISCardReader.GetAttrib(PCSC.SCardAttribute,System.Byte[]@)" />.</para>
            </returns>
            <remarks>This method calls the API function SCardGetAttrib().</remarks>
        </member>
        <member name="M:PCSC.ISCardReader.GetAttrib(System.IntPtr,System.Byte[]@)">
            <summary>Gets an attribute from the IFD Handler (reader driver).</summary>
            <param name="attributeId">Identifier for the attribute to get.</param>
            <param name="attribute">A buffer that receives the attribute.</param>
            <returns>
                <list type="table">
                    <listheader>
                        <term>Return code</term>
                        <description>Description</description>
                    </listheader>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.Success" />
                        </term>
                        <description>Successful (SCARD_S_SUCCESS)</description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.InsufficientBuffer" />
                        </term>
                        <description>
                            <paramref name="attribute" /> is too big  - indicates an error in the PC/SC class library. (SCARD_E_INSUFFICIENT_BUFFER)</description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.InsufficientBuffer" />
                        </term>
                        <description>Reader buffer <paramref name="attribute" /> not large enough  - indicates an error in the PC/SC class library. (SCARD_E_INSUFFICIENT_BUFFER)</description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.InvalidHandle" />
                        </term>
                        <description>Invalid card handle (SCARD_E_INVALID_HANDLE)</description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.InvalidParameter" />
                        </term>
                        <description>A parameter is <see langword="null" /> and should not (SCARD_E_INVALID_PARAMETER)</description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.NoMemory" />
                        </term>
                        <description>Memory allocation failed (SCARD_E_NO_MEMORY)</description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.NoService" />
                        </term>
                        <description>The server is not runing (SCARD_E_NO_SERVICE)</description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.NotTransacted" />
                        </term>
                        <description>Data exchange not successful (SCARD_E_NOT_TRANSACTED)</description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.ReaderUnavailable" />
                        </term>
                        <description>The reader has been removed (SCARD_E_READER_UNAVAILABLE)</description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.CommunicationError" />
                        </term>
                        <description>An internal communications error has been detected (SCARD_F_COMM_ERROR)</description>
                    </item>
                </list>
            </returns>
            <remarks>This method calls the API function SCardGetAttrib().</remarks>
        </member>
        <member name="M:PCSC.ISCardReader.GetAttrib(PCSC.SCardAttribute,System.Byte[],System.Int32@)">
            <summary>Gets an attribute from the IFD Handler (reader driver).</summary>
            <param name="attributeId">Identifier for the attribute to get.</param>
            <param name="attribute">A buffer that receives the attribute.</param>
            <param name="attributeBufferLength">Size of the result contained in attribute (in bytes).</param>
            <returns>
                <list type="table">
                    <listheader>
                        <term>Return code</term>
                        <description>Description</description>
                    </listheader>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.Success" />
                        </term>
                        <description>Successful (SCARD_S_SUCCESS)</description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.InsufficientBuffer" />
                        </term>
                        <description>
                            <paramref name="attribute" /> is too big  - indicates an error in the PC/SC class library. (SCARD_E_INSUFFICIENT_BUFFER)</description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.InsufficientBuffer" />
                        </term>
                        <description>Reader buffer <paramref name="attribute" /> not large enough  - indicates an error in the PC/SC class library. (SCARD_E_INSUFFICIENT_BUFFER)</description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.InvalidHandle" />
                        </term>
                        <description>Invalid card handle (SCARD_E_INVALID_HANDLE)</description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.InvalidParameter" />
                        </term>
                        <description>A parameter is <see langword="null" /> and should not (SCARD_E_INVALID_PARAMETER)</description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.NoMemory" />
                        </term>
                        <description>Memory allocation failed (SCARD_E_NO_MEMORY)</description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.NoService" />
                        </term>
                        <description>The server is not runing (SCARD_E_NO_SERVICE)</description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.NotTransacted" />
                        </term>
                        <description>Data exchange not successful (SCARD_E_NOT_TRANSACTED)</description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.ReaderUnavailable" />
                        </term>
                        <description>The reader has been removed (SCARD_E_READER_UNAVAILABLE)</description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.CommunicationError" />
                        </term>
                        <description>An internal communications error has been detected (SCARD_F_COMM_ERROR)</description>
                    </item>
                </list>
                <para>The method will return <see cref="F:PCSC.SCardError.InsufficientBuffer" /> if <paramref name="attribute" /> is
                    <see langword="null" /> or if the buffer size is not sufficient.
                    <paramref name="attributeBufferLength" /> contains the required amount of bytes (size).</para>
                <para>If the method returned with <see cref="F:PCSC.SCardError.Success" /> then <paramref name="attributeBufferLength" /> contains the exact size of the result in
                    <paramref
                        name="attribute" />
                    .</para>
                <para>For an example please see <see cref="M:PCSC.ISCardReader.GetAttrib(PCSC.SCardAttribute,System.Byte[]@)" />.</para>
            </returns>
            <remarks>This method calls the API function SCardGetAttrib().</remarks>
        </member>
        <member name="M:PCSC.ISCardReader.GetAttrib(PCSC.SCardAttribute,System.Byte[]@)">
            <summary>Gets an attribute from the IFD Handler (reader driver).</summary>
            <param name="attributeId">Identifier for the attribute to get.</param>
            <param name="attribute">A buffer that receives the attribute.</param>
            <returns>
                <list type="table">
                    <listheader>
                        <term>Return code</term>
                        <description>Description</description>
                    </listheader>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.Success" />
                        </term>
                        <description>Successful (SCARD_S_SUCCESS)</description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.InsufficientBuffer" />
                        </term>
                        <description>
                            <paramref name="attribute" /> is too big  - indicates an error in the PC/SC class library. (SCARD_E_INSUFFICIENT_BUFFER)</description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.InsufficientBuffer" />
                        </term>
                        <description>Reader buffer <paramref name="attribute" /> not large enough  - indicates an error in the PC/SC class library. (SCARD_E_INSUFFICIENT_BUFFER)</description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.InvalidHandle" />
                        </term>
                        <description>Invalid card handle (SCARD_E_INVALID_HANDLE)</description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.InvalidParameter" />
                        </term>
                        <description>A parameter is <see langword="null" /> and should not (SCARD_E_INVALID_PARAMETER)</description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.NoMemory" />
                        </term>
                        <description>Memory allocation failed (SCARD_E_NO_MEMORY)</description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.NoService" />
                        </term>
                        <description>The server is not runing (SCARD_E_NO_SERVICE)</description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.NotTransacted" />
                        </term>
                        <description>Data exchange not successful (SCARD_E_NOT_TRANSACTED)</description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.ReaderUnavailable" />
                        </term>
                        <description>The reader has been removed (SCARD_E_READER_UNAVAILABLE)</description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.CommunicationError" />
                        </term>
                        <description>An internal communications error has been detected (SCARD_F_COMM_ERROR)</description>
                    </item>
                </list>
            </returns>
            <remarks>This method calls the API function SCardGetAttrib().</remarks>
        </member>
        <member name="M:PCSC.ISCardReader.SetAttrib(System.IntPtr,System.Byte[],System.Int32)">
            <summary>Set an attribute of the IFD Handler.</summary>
            <param name="attributeId">Identifier for the attribute to set.</param>
            <param name="attribute">Buffer that contains the new value of the attribute.</param>
            <param name="attributeBufferLength">Length of the <paramref name="attribute" /> buffer in bytes.</param>
            <returns>
                <list type="table">
                    <listheader>
                        <term>Column</term>
                        <description>Description</description>
                    </listheader>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.Success" />
                        </term>
                        <description>Successful (SCARD_S_SUCCESS)</description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.InsufficientBuffer" />
                        </term>
                        <description>attribute is too big (SCARD_E_INSUFFICIENT_BUFFER)</description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.InvalidHandle" />
                        </term>
                        <description>Invalid card handle (SCARD_E_INVALID_HANDLE)</description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.InvalidParameter" />
                        </term>
                        <description>A parameter is <see langword="null" /> and should not (SCARD_E_INVALID_PARAMETER)</description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.NoService" />
                        </term>
                        <description>The server is not runing (SCARD_E_NO_SERVICE)</description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.NotTransacted" />
                        </term>
                        <description>Data exchange not successful (SCARD_E_NOT_TRANSACTED)</description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.ReaderUnavailable" />
                        </term>
                        <description>The reader has been removed (SCARD_E_READER_UNAVAILABLE)</description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.CommunicationError" />
                        </term>
                        <description>An internal communications error has been detected (SCARD_F_COMM_ERROR)</description>
                    </item>
                </list>
            </returns>
            <remarks>
                <para>The list of attributes you can set depends on the IFD handler you are using.</para>
                <para>This method calls the API function SCardSetAttrib().</para>
            </remarks>
        </member>
        <member name="M:PCSC.ISCardReader.SetAttrib(System.IntPtr,System.Byte[])">
            <summary>Set an attribute of the IFD Handler.</summary>
            <param name="attributeId">Identifier for the attribute to set.</param>
            <param name="attribute">Buffer that contains the new value of the attribute.</param>
            <returns>
                <list type="table">
                    <listheader>
                        <term>Column</term>
                        <description>Description</description>
                    </listheader>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.Success" />
                        </term>
                        <description>Successful (SCARD_S_SUCCESS)</description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.InsufficientBuffer" />
                        </term>
                        <description>attribute is too big (SCARD_E_INSUFFICIENT_BUFFER)</description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.InvalidHandle" />
                        </term>
                        <description>Invalid card handle (SCARD_E_INVALID_HANDLE)</description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.InvalidParameter" />
                        </term>
                        <description>A parameter is <see langword="null" /> and should not (SCARD_E_INVALID_PARAMETER)</description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.NoService" />
                        </term>
                        <description>The server is not runing (SCARD_E_NO_SERVICE)</description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.NotTransacted" />
                        </term>
                        <description>Data exchange not successful (SCARD_E_NOT_TRANSACTED)</description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.ReaderUnavailable" />
                        </term>
                        <description>The reader has been removed (SCARD_E_READER_UNAVAILABLE)</description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.CommunicationError" />
                        </term>
                        <description>An internal communications error has been detected (SCARD_F_COMM_ERROR)</description>
                    </item>
                </list>
            </returns>
            <remarks>
                <para>The list of attributes you can set depends on the IFD handler you are using.</para>
                <para>This method calls the API function SCardSetAttrib().</para>
            </remarks>
        </member>
        <member name="M:PCSC.ISCardReader.SetAttrib(PCSC.SCardAttribute,System.Byte[],System.Int32)">
            <summary>Set an attribute of the IFD Handler.</summary>
            <param name="attributeId">Identifier for the attribute to set.</param>
            <param name="attribute">Buffer that contains the new value of the attribute.</param>
            <param name="attributeBufferLength">Length of the <paramref name="attribute" /> buffer in bytes.</param>
            <returns><list type="table">
                    <listheader>
                        <term>Column</term>
                        <description>Description</description>
                    </listheader>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.Success" />
                        </term>
                        <description>Successful (SCARD_S_SUCCESS)</description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.InsufficientBuffer" />
                        </term>
                        <description>attribute is too big (SCARD_E_INSUFFICIENT_BUFFER)</description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.InvalidHandle" />
                        </term>
                        <description>Invalid card handle (SCARD_E_INVALID_HANDLE)</description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.InvalidParameter" />
                        </term>
                        <description>A parameter is <see langword="null" /> and should not (SCARD_E_INVALID_PARAMETER)</description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.NoService" />
                        </term>
                        <description>The server is not runing (SCARD_E_NO_SERVICE)</description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.NotTransacted" />
                        </term>
                        <description>Data exchange not successful (SCARD_E_NOT_TRANSACTED)</description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.ReaderUnavailable" />
                        </term>
                        <description>The reader has been removed (SCARD_E_READER_UNAVAILABLE)</description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.CommunicationError" />
                        </term>
                        <description>An internal communications error has been detected (SCARD_F_COMM_ERROR)</description>
                    </item>
                </list>
            </returns>
            <remarks>
                <para>The list of attributes you can set depends on the IFD handler you are using.</para>
                <para>This method calls the API function SCardSetAttrib().</para>
            </remarks>
        </member>
        <member name="M:PCSC.ISCardReader.SetAttrib(PCSC.SCardAttribute,System.Byte[])">
            <summary>Set an attribute of the IFD Handler.</summary>
            <param name="attributeId">Identifier for the attribute to set.</param>
            <param name="attribute">Buffer that contains the new value of the attribute.</param>
            <returns>
                <list type="table">
                    <listheader>
                        <term>Value</term>
                        <description>Description</description>
                    </listheader>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.Success" />
                        </term>
                        <description>Successful (SCARD_S_SUCCESS)</description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.InsufficientBuffer" />
                        </term>
                        <description>attribute is too big (SCARD_E_INSUFFICIENT_BUFFER)</description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.InvalidHandle" />
                        </term>
                        <description>Invalid card handle (SCARD_E_INVALID_HANDLE)</description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.InvalidParameter" />
                        </term>
                        <description>A parameter is <see langword="null" /> and should not (SCARD_E_INVALID_PARAMETER)</description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.NoService" />
                        </term>
                        <description>The server is not runing (SCARD_E_NO_SERVICE)</description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.NotTransacted" />
                        </term>
                        <description>Data exchange not successful (SCARD_E_NOT_TRANSACTED)</description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.ReaderUnavailable" />
                        </term>
                        <description>The reader has been removed (SCARD_E_READER_UNAVAILABLE)</description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCardError.CommunicationError" />
                        </term>
                        <description>An internal communications error has been detected (SCARD_F_COMM_ERROR)</description>
                    </item>
                </list>
            </returns>
            <remarks>
                <para>The list of attributes you can set depends on the IFD handler you are using.</para>
                <para>This method calls the API function SCardSetAttrib().</para>
            </remarks>
        </member>
        <member name="P:PCSC.ISCardReader.ReaderName">
            <summary>The connected reader's friendly name.</summary>
            <value>A human readable string of the reader name or <see langword="null" /> if the reader object is currently not connected.</value>
        </member>
        <member name="P:PCSC.ISCardReader.CurrentContext">
            <summary>The Smart Card context that will be used for this connection.</summary>
            <value>
                <see langword="null" /> if the reader is not connected.</value>
        </member>
        <member name="P:PCSC.ISCardReader.CurrentShareMode">
            <summary>The current mode of connection type: exclusive or shared.</summary>
        </member>
        <member name="P:PCSC.ISCardReader.ActiveProtocol">
            <summary>The currently used protocol to communicate with the card.</summary>
            <value>
                <see cref="F:PCSC.SCardProtocol.Unset" /> if not connected.</value>
        </member>
        <member name="P:PCSC.ISCardReader.CardHandle">
            <summary>A pointer (Card Handle) that can be used for C API calls.</summary>
            <value>0 if not connected.</value>
            <remarks>
                <para>This is the card handle that is returned when calling the C API function SCardConnect().</para>
            </remarks>
        </member>
        <member name="P:PCSC.ISCardReader.IsConnected">
            <summary>The current connection state of the reader.</summary>
            <value><see langword="true" /> if the reader is connected. Otherwise <see langword="false" />.</value>
        </member>
        <member name="T:PCSC.Monitoring.CardEventArgs">
            <summary>
            Smart card event.
            </summary>
        </member>
        <member name="P:PCSC.Monitoring.CardEventArgs.ReaderName">
            <summary>
            Name of the reader that has raised the event.
            </summary>
            <remarks>A human readable string of the reader name.</remarks>
        </member>
        <member name="P:PCSC.Monitoring.CardEventArgs.Atr">
            <summary>
            The card's ATR (if present), otherwise <c>null</c>.
            </summary>
        </member>
        <member name="M:PCSC.Monitoring.CardEventArgs.#ctor">
            <summary>
            Creates a new instance.
            </summary>
        </member>
        <member name="M:PCSC.Monitoring.CardEventArgs.#ctor(System.String,System.Byte[])">
            <summary>
            Creates a new instance.
            </summary>
            <param name="readerName">Name of the reader that has raised the event.</param>
            <param name="atr">The card's ATR (if present), otherwise <c>null</c>.</param>
        </member>
        <member name="T:PCSC.Monitoring.CardInitializedEvent">
            <summary>The reader has been Initialized.</summary>
            <param name="sender">The <see cref="T:PCSC.Monitoring.SCardMonitor" /> sender object.</param>
            <param name="e">Reader status information.</param>
            <remarks>
                <example>
                    <code lang="C#">
            // Create a monitor object with its own PC/SC context.
            SCardMonitor monitor = new SCardMonitor(
            	new SCardContext(),
            	SCardScope.System);
            
            // Point the callback function(s) to the pre-defined method MyCardInitializedMethod.
            monitor.Initialized += new CardInitializedEvent(MyCardInitializedMethod);
            
            // Start to monitor the reader
            monitor.Start("OMNIKEY CardMan 5x21 00 01");
            </code>
                </example>
            </remarks>
        </member>
        <member name="T:PCSC.Monitoring.CardInsertedEvent">
            <summary>A new card has been inserted.</summary>
            <param name="sender">The <see cref="T:PCSC.Monitoring.SCardMonitor" /> sender object</param>
            <param name="e">Reader status information.</param>
            <remarks>
                <example>
                    <code lang="C#">
            // Create a monitor object with its own PC/SC context.
            SCardMonitor monitor = new SCardMonitor(
                new SCardContext(),
                SCardScope.System);
            
            // Point the callback function(s) to the pre-defined method MyCardInsertedMethod.
            monitor.CardInserted += new CardInsertedEvent(MyCardInsertedMethod);
            
            // Start to monitor the reader
            monitor.Start("OMNIKEY CardMan 5x21 00 01");
              </code>
                </example>
            </remarks>
        </member>
        <member name="T:PCSC.Monitoring.CardRemovedEvent">
            <summary>A card has been removed.</summary>
            <param name="sender">The <see cref="T:PCSC.Monitoring.SCardMonitor" /> sender object.</param>
            <param name="e">Reader status information.</param>
            <remarks>
                <example>
                    <code lang="C#">
            // Create a monitor object with its own PC/SC context.
            SCardMonitor monitor = new SCardMonitor(
            	new SCardContext(),
            	SCardScope.System);
            
            // Point the callback function(s) to the pre-defined method MyCardRemovedMethod.
            monitor.CardRemoved += new CardRemovedEvent(MyCardRemovedMethod);
            
            // Start to monitor the reader
            monitor.Start("OMNIKEY CardMan 5x21 00 01");
              </code>
                </example>
            </remarks>
        </member>
        <member name="T:PCSC.Monitoring.CardStatusEventArgs">
            <summary>
                Information about a smart card reader status.
            </summary>
        </member>
        <member name="P:PCSC.Monitoring.CardStatusEventArgs.State">
            <summary>The current reader status.</summary>
            <remarks>
                <para>
                    Is a bit mask containing one or more of the following values:
                </para>
                <list type="table">
                    <listheader>
                        <term>State</term>
                        <description>Description</description>
                    </listheader>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCRState.Unaware" />
                        </term>
                        <description>The application is unaware of the current state, and would like to know. The use of this value results in an immediate return from state transition monitoring services. This is represented by all bits set to zero.</description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCRState.Ignore" />
                        </term>
                        <description>This reader should be ignored</description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCRState.Changed" />
                        </term>
                        <description>There is a difference between the state believed by the application, and the state known by the resource manager. When this bit is set, the application may assume a significant state change has occurred on this reader.</description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCRState.Unknown" />
                        </term>
                        <description>
                            The given reader name is not recognized by the resource manager. If this bit is set, then
                            <see
                                cref="F:PCSC.SCRState.Changed" />
                            and
                            <see
                                cref="F:PCSC.SCRState.Ignore" />
                            will also be set
                        </description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCRState.Unavailable" />
                        </term>
                        <description>The actual state of this reader is not available. If this bit is set, then all the following bits are clear.</description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCRState.Empty" />
                        </term>
                        <description>There is no card in the reader. If this bit is set, all the following bits will be clear</description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCRState.Present" />
                        </term>
                        <description>There is a card in the reader</description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCRState.Exclusive" />
                        </term>
                        <description>
                            The card in the reader is allocated for exclusive use by another application. If this bit is set,
                            <see
                                cref="F:PCSC.SCRState.Present" />
                            will also be set.
                        </description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCRState.InUse" />
                        </term>
                        <description>
                            The card in the reader is in use by one or more other applications, but may be connected to in shared mode. If this bit is set,
                            <see
                                cref="F:PCSC.SCRState.Present" />
                            will also be set.
                        </description>
                    </item>
                    <item>
                        <term>
                            <see cref="F:PCSC.SCRState.Mute" />
                        </term>
                        <description>There is an unresponsive card in the reader.</description>
                    </item>
                </list>
            </remarks>
        </member>
        <member name="M:PCSC.Monitoring.CardStatusEventArgs.#ctor">
            <summary>
                Creates a new instance.
            </summary>
        </member>
        <member name="M:PCSC.Monitoring.CardStatusEventArgs.#ctor(System.String,PCSC.SCRState,System.Byte[])">
            <summary>
                Creates a new instance.
            </summary>
            <param name="readerName">Name of the smard card reader</param>
            <param name="state">The reader's state</param>
            <param name="atr">The card's ATR.</param>
        </member>
        <member name="T:PCSC.Monitoring.DeviceChangeEvent">
            <summary>
            A smartcard device status change
            </summary>
            <param name="sender">The <see cref="T:PCSC.ISCardMonitor" /> sender object.</param>
            <param name="e">Reader device changes.</param>
        </member>
        <member name="T:PCSC.Monitoring.DeviceChangeEventArgs">
            <summary>Information about attached and detached smart card reader devices.</summary>
        </member>
        <member name="P:PCSC.Monitoring.DeviceChangeEventArgs.AllReaders">
            <summary>
            All connected smartcard reader devices
            </summary>
        </member>
        <member name="P:PCSC.Monitoring.DeviceChangeEventArgs.AttachedReaders">
            <summary>
            Recently attached (added) smartcard reader devices
            </summary>
        </member>
        <member name="P:PCSC.Monitoring.DeviceChangeEventArgs.DetachedReaders">
            <summary>
            Recently detached (removed) smartcard reader devices
            </summary>
        </member>
        <member name="M:PCSC.Monitoring.DeviceChangeEventArgs.#ctor(System.Collections.Generic.IEnumerable{System.String},System.Collections.Generic.IEnumerable{System.String},System.Collections.Generic.IEnumerable{System.String})">
            <summary>
            Creates a new instance
            </summary>
            <param name="allReaders">All connected smartcard reader devices</param>
            <param name="attachedReaders">Attached/added smartcard reader devices</param>
            <param name="detachedReaders">Detached/removed smartcard reader devices</param>
        </member>
        <member name="T:PCSC.Monitoring.DeviceMonitor">
            <summary>Monitors for attached and detached smartcard reader devices.</summary>
        </member>
        <member name="E:PCSC.Monitoring.DeviceMonitor.Initialized">
            <summary>
            The monitor object has been initialized.
            </summary>
        </member>
        <member name="E:PCSC.Monitoring.DeviceMonitor.StatusChanged">
            <summary>
            New reader(s) have been attached and/or detached.
            </summary>
        </member>
        <member name="E:PCSC.Monitoring.DeviceMonitor.MonitorException">
            <summary>An PC/SC error occurred during monitoring.</summary>
        </member>
        <member name="M:PCSC.Monitoring.DeviceMonitor.#ctor(PCSC.SCardScope)">
            <summary>
            Creates a new instance
            </summary>
            <param name="scope"></param>
        </member>
        <member name="M:PCSC.Monitoring.DeviceMonitor.#ctor(PCSC.IContextFactory,PCSC.SCardScope)">
            <summary>
            Creates a new instance
            </summary>
            <param name="contextFactory">Context factory used for this monitor</param>
            <param name="scope">Scope of the establishment. This can either be a local or remote connection.</param>
        </member>
        <member name="M:PCSC.Monitoring.DeviceMonitor.Finalize">
            <summary>
            Finalizer
            </summary>
        </member>
        <member name="M:PCSC.Monitoring.DeviceMonitor.Start">
            <summary>
            Starts monitoring for device status changes
            </summary>
        </member>
        <member name="M:PCSC.Monitoring.DeviceMonitor.Cancel">
            <summary>Cancels the monitoring.</summary>
            <remarks>This will end the monitoring. The method calls the <see cref="M:PCSC.ISCardContext.Cancel" /> method of its Application Context to the PC/SC Resource Manager.</remarks>
        </member>
        <member name="M:PCSC.Monitoring.DeviceMonitor.Dispose">
            <summary>Disposes the object.</summary>
            <remarks>Dispose will call <see cref="M:PCSC.Monitoring.DeviceMonitor.Cancel" /> in order to stop the background thread. The application context will be disposed if you configured the monitor to do so at construction time.</remarks>
        </member>
        <member name="T:PCSC.Monitoring.DeviceMonitorExceptionEvent">
            <summary>An PC/SC error occurred during device monitoring.</summary>
            <param name="sender">The <see cref="T:PCSC.SCardMonitor" /> sender object.</param>
            <param name="args">Argument that contains the exception.</param>
        </member>
        <member name="T:PCSC.Monitoring.DeviceMonitorExceptionEventArgs">
            <summary>
            Information about a device monitor exception
            </summary>
        </member>
        <member name="P:PCSC.Monitoring.DeviceMonitorExceptionEventArgs.Exception">
            <summary>
            Exception that occurred in device monitor thread
            </summary>
        </member>
        <member name="M:PCSC.Monitoring.DeviceMonitorExceptionEventArgs.#ctor(System.Exception)">
            <summary>
            Creates an instance
            </summary>
            <param name="exception">Exception that occurred in monitoring thread</param>
        </member>
        <member name="T:PCSC.Monitoring.DeviceMonitorFactory">
            <summary>
            Smartcard reader device monitoring factory
            </summary>
        </member>
        <member name="P:PCSC.Monitoring.DeviceMonitorFactory.Instance">
            <summary>
            Default factory instance. Uses <see cref="P:PCSC.ContextFactory.Instance"/> for context creation.
            </summary>
        </member>
        <member name="M:PCSC.Monitoring.DeviceMonitorFactory.#ctor(PCSC.IContextFactory)">
            <summary>
            Creates a monitor instance
            </summary>
            <param name="contextFactory">Context factory to use</param>
        </member>
        <member name="M:PCSC.Monitoring.DeviceMonitorFactory.Create(PCSC.SCardScope)">
            <inheritdoc />
        </member>
        <member name="M:PCSC.Monitoring.DeviceMonitorFactory.Release(PCSC.Monitoring.IDeviceMonitor)">
            <inheritdoc />
        </member>
        <member name="T:PCSC.Monitoring.IDeviceMonitor">
            <summary>Monitors for attached and detached smartcard reader devices.</summary>
        </member>
        <member name="E:PCSC.Monitoring.IDeviceMonitor.Initialized">
            <summary>
            The monitor object has been initialized.
            </summary>
        </member>
        <member name="E:PCSC.Monitoring.IDeviceMonitor.StatusChanged">
            <summary>
            New reader(s) have been attached and/or detached.
            </summary>
        </member>
        <member name="E:PCSC.Monitoring.IDeviceMonitor.MonitorException">
            <summary>An PC/SC error occurred during monitoring.</summary>
        </member>
        <member name="M:PCSC.Monitoring.IDeviceMonitor.Start">
            <summary>
            Starts monitoring for device status changes
            </summary>
        </member>
        <member name="M:PCSC.Monitoring.IDeviceMonitor.Cancel">
            <summary>Cancels the monitoring.</summary>
            <remarks>This will end the monitoring. The method calls the <see cref="M:PCSC.ISCardContext.Cancel" /> method of its Application Context to the PC/SC Resource Manager.</remarks>
        </member>
        <member name="T:PCSC.Monitoring.IDeviceMonitorFactory">
            <summary>
            Smartcard reader device monitoring factory
            </summary>
        </member>
        <member name="M:PCSC.Monitoring.IDeviceMonitorFactory.Create(PCSC.SCardScope)">
            <summary>
            Creates a device monitor
            </summary>
            <param name="scope">Scope of the establishment. This can either be a local or remote connection.</param>
            <returns>A <see cref="T:PCSC.Monitoring.IDeviceMonitor"/></returns>
        </member>
        <member name="M:PCSC.Monitoring.IDeviceMonitorFactory.Release(PCSC.Monitoring.IDeviceMonitor)">
            <summary>
            Releases the smartcard device monitor and its dependencies using the <see cref="M:System.IDisposable.Dispose"/> method.
            </summary>
            <param name="monitor">Smartcard device monitor that shall be stopped and disposed.</param>
        </member>
        <member name="T:PCSC.Monitoring.IMonitorFactory">
            <summary>
            Smart card monitor factory
            </summary>
        </member>
        <member name="M:PCSC.Monitoring.IMonitorFactory.Create(PCSC.SCardScope)">
            <summary>
             Creates a smart card event monitor 
            </summary>
            <param name="scope">Scope of the establishment. This can either be a local or remote connection.</param>
            <returns>A <see cref="T:PCSC.Monitoring.ISCardMonitor"/></returns>
        </member>
        <member name="M:PCSC.Monitoring.IMonitorFactory.Release(PCSC.Monitoring.ISCardMonitor)">
            <summary>
            Releases the smart card monitor and its dependencies using the <see cref="M:System.IDisposable.Dispose"/> method.
            </summary>
            <param name="monitor">Smart card monitor that shall be stopped and disposed.</param>
        </member>
        <member name="T:PCSC.Monitoring.ISCardMonitor">
            <summary>Monitors a Smart Card reader and triggers events on status changes.</summary>
        </member>
        <member name="E:PCSC.Monitoring.ISCardMonitor.StatusChanged">
            <summary>A general reader status change.</summary>
            <remarks>
                <example>
                    <code lang="C#">
            // Create a monitor object with its own PC/SC context.
            var monitor = new SCardMonitor(
            	new SCardContext(),
            	SCardScope.System,
                true);
            
            // Point the callback function(s) to the pre-defined method MyStatusChangedMethod.
            monitor.StatusChanged += new StatusChangeEvent(MyStatusChangedMethod);
            
            // Start to monitor the reader
            monitor.Start("OMNIKEY CardMan 5x21 00 01");
              </code>
                </example>
            </remarks>
        </member>
        <member name="E:PCSC.Monitoring.ISCardMonitor.CardInserted">
            <summary>A new card has been inserted.</summary>
            <remarks>
                <example>
                    <code lang="C#">
            // Create a monitor object with its own PC/SC context.
            var monitor = new SCardMonitor(
            	new SCardContext(),
            	SCardScope.System,
                true);
            
            monitor.CardInserted += new CardInsertedEvent(MyCardInsertedMethod);
            
            // Start to monitor the reader
            monitor.Start("OMNIKEY CardMan 5x21 00 01");
              </code>
                </example>
            </remarks>
        </member>
        <member name="E:PCSC.Monitoring.ISCardMonitor.CardRemoved">
            <summary>A card has been removed.</summary>
            <remarks>
                <example>
                    <code lang="C#">
            // Create a monitor object with its own PC/SC context.
            var monitor = new SCardMonitor(
            	new SCardContext(),
            	SCardScope.System,
                true);
            
            monitor.CardRemoved += new CardRemovedEvent(MyCardRemovedMethod);
            
            // Start to monitor the reader
            monitor.Start("OMNIKEY CardMan 5x21 00 01");
              </code>
                </example>
            </remarks>
        </member>
        <member name="E:PCSC.Monitoring.ISCardMonitor.Initialized">
            <summary>The monitor object has been initialized.</summary>
            <remarks>
                <para>This event appears only once for each reader after calling <see cref="M:PCSC.Monitoring.SCardMonitor.Start(System.String)" /> or <see cref="M:PCSC.Monitoring.SCardMonitor.Start(System.String[])" />.</para>
                <example>
                    <code lang="C#">
            // Create a monitor object with its own PC/SC context.
            var monitor = new SCardMonitor(
            	new SCardContext(),
            	SCardScope.System,
                true);
            
            monitor.Initialized += new CardInitializedEvent(MyCardInitializedMethod);
            
            // Start to monitor the reader
            monitor.Start("OMNIKEY CardMan 5x21 00 01");
              </code>
                </example>
            </remarks>
        </member>
        <member name="E:PCSC.Monitoring.ISCardMonitor.MonitorException">
            <summary>An PC/SC error occurred during monitoring.</summary>
            <remarks>
                <example>
                    <code lang="C#">
            // Create a monitor object with its own PC/SC context.
            var monitor = new SCardMonitor(
            	new SCardContext(),
            	SCardScope.System,
                true);
            
            monitor.MonitorException += new MonitorExceptionEvent(MyMonitorExceptionMethod);
            
            // Start to monitor the reader
            monitor.Start("OMNIKEY CardMan 5x21 00 01");
              </code>
                </example>
            </remarks>
        </member>
        <member name="P:PCSC.Monitoring.ISCardMonitor.ReaderNames">
            <summary>All readers that are currently being monitored.</summary>
            <value>A <see cref="T:System.String" /> array of reader names. <see langword="null" /> if no readers is being monitored.</value>
        </member>
        <member name="P:PCSC.Monitoring.ISCardMonitor.Monitoring">
            <summary>Indicates if there are readers currently monitored.</summary>
            <value>
                <list type="table">
                    <listheader>
                        <term>Value</term>
                        <description>Description</description>
                    </listheader>
                    <item>
                        <term>
                            <see langword="true" />
                        </term>
                        <description>Monitoring process ongoing.</description>
                    </item>
                    <item>
                        <term>
                            <see langword="false" />
                        </term>
                        <description>No monitoring.</description>
                    </item>
                </list>
            </value>
        </member>
        <member name="P:PCSC.Monitoring.ISCardMonitor.ReaderCount">
            <summary>The number of readers that currently being monitored.</summary>
            <value>Return 0 if no reader is being monitored.</value>
        </member>
        <member name="M:PCSC.Monitoring.ISCardMonitor.GetCurrentStateValue(System.Int32)">
            <summary>Returns the current state of a reader that is currently being monitored.</summary>
            <param name="index">The number of the desired reader. The index must be between 0 and (<see cref="P:PCSC.Monitoring.SCardMonitor.ReaderCount" /> - 1).</param>
            <returns>The current state of reader with index number <paramref name="index" />.</returns>
            <remarks>This method will throw an <see cref="T:System.ArgumentOutOfRangeException" /> if the specified <paramref name="index" /> is invalid. You can enumerate all readers currently monitored with the <see cref="P:PCSC.Monitoring.SCardMonitor.ReaderNames" /> property.</remarks>
            <exception cref="T:System.ArgumentOutOfRangeException">If the specified <paramref name="index" /> is invalid.</exception>
        </member>
        <member name="M:PCSC.Monitoring.ISCardMonitor.GetCurrentState(System.Int32)">
            <summary>Returns the current state of a reader that is currently being monitored.</summary>
            <param name="index">The number of the desired reader. The index must be between 0 and (<see cref="P:PCSC.Monitoring.SCardMonitor.ReaderCount" /> - 1).</param>
            <returns>The current state of reader with index number <paramref name="index" />.</returns>
            <remarks>This method will throw an <see cref="T:System.ArgumentOutOfRangeException" /> if the specified <paramref name="index" /> is invalid. You can enumerate all readers currently monitored with the <see cref="P:PCSC.Monitoring.SCardMonitor.ReaderNames" /> property.</remarks>
            <exception cref="T:System.ArgumentOutOfRangeException">If the specified <paramref name="index" /> is invalid.</exception>
        </member>
        <member name="M:PCSC.Monitoring.ISCardMonitor.GetReaderName(System.Int32)">
            <summary>Returns the reader name of a given <paramref name="index" />.</summary>
            <param name="index">The number of the desired reader. The index must be between 0 and (<see cref="P:PCSC.Monitoring.SCardMonitor.ReaderCount" /> - 1).</param>
            <returns>A reader name.</returns>
            <remarks>This method will throw an <see cref="T:System.ArgumentOutOfRangeException" /> if the specified <paramref name="index" /> is invalid. You can enumerate all readers currently monitored with the <see cref="P:PCSC.Monitoring.SCardMonitor.ReaderNames" /> property.</remarks>
            <exception cref="T:System.ArgumentOutOfRangeException">If the specified <paramref name="index" /> is invalid.</exception>
        </member>
        <member name="M:PCSC.Monitoring.ISCardMonitor.Cancel">
            <summary>Cancels the monitoring of all readers that are currently being monitored.</summary>
            <remarks>This will end the monitoring. The method calls the <see cref="M:PCSC.ISCardContext.Cancel" /> method of its Application Context to the PC/SC Resource Manager.</remarks>
        </member>
        <member name="M:PCSC.Monitoring.ISCardMonitor.Start(System.String)">
            <param name="readerName">The Smart Card reader that shall be monitored.</param>
            <summary>Starts to monitor a single Smart Card reader for status changes.</summary>
            <remarks>
                <example>
                    <code lang="C#">
            // Create a new monitor object with its own PC/SC context.
            var monitor = new SCardMonitor(
            	new SCardContext(),
            	SCardScope.System,
                true);
            
            // Start to monitor a single reader.
            monitor.Start("OMNIKEY CardMan 5x21 00 00");
              </code>
                </example>
                <para>Do not forget to register for at least one event:
                    <list type="table">
                        <listheader><term>Event</term><description>Description</description></listheader>
                        <item><term><see cref="E:PCSC.Monitoring.SCardMonitor.CardInserted" /></term><description>A new card has been inserted.</description></item>
                        <item><term><see cref="E:PCSC.Monitoring.SCardMonitor.CardRemoved" /></term><description>A card has been removed.</description></item>
                        <item><term><see cref="E:PCSC.Monitoring.SCardMonitor.Initialized" /></term><description>Initial status.</description></item>
                        <item><term><see cref="E:PCSC.Monitoring.SCardMonitor.StatusChanged" /></term><description>A general status change.</description></item>
                        <item><term><see cref="E:PCSC.Monitoring.SCardMonitor.MonitorException" /></term><description>An error occurred.</description></item>
                    </list></para>
            </remarks>
        </member>
        <member name="M:PCSC.Monitoring.ISCardMonitor.Start(System.String[])">
            <param name="readerNames">A <see cref="T:System.String" /> array of reader names that shall be monitored.</param>
            <summary>Starts to monitor a range Smart Card readers for status changes.</summary>
            <remarks>
                <example>
                    <code lang="C#">
            string [] readerNames;
            using (var ctx = new SCardContext()) {
                ctx.Establish(SCardScope.System);
                // Retrieve the names of all installed readers.
                readerNames = ctx.GetReaders();
                ctx.Release();
            }
            
            // Create a new monitor object with its own PC/SC context.
            var monitor = new SCardMonitor(
            	new SCardContext(),
            	SCardScope.System,
                true);
            
            foreach (string reader in readerNames) {
            	Console.WriteLine("Start monitoring for reader {0}.", reader);
            }
                    
            // Start monitoring multiple readers.
            monitor.Start(readerNames);
            </code>
                </example>
                <para>Do not forget to register for at least one event:
                    <list type="table">
                        <listheader><term>Event</term><description>Description</description></listheader>
                        <item><term><see cref="E:PCSC.Monitoring.SCardMonitor.CardInserted" /></term><description>A new card has been inserted.</description></item>
                        <item><term><see cref="E:PCSC.Monitoring.SCardMonitor.CardRemoved" /></term><description>A card has been removed.</description></item>
                        <item><term><see cref="E:PCSC.Monitoring.SCardMonitor.Initialized" /></term><description>Initial status.</description></item>
                        <item><term><see cref="E:PCSC.Monitoring.SCardMonitor.StatusChanged" /></term><description>A general status change.</description></item>
                        <item><term><see cref="E:PCSC.Monitoring.SCardMonitor.MonitorException" /></term><description>An error occurred.</description></item>
                    </list></para>
            </remarks>
        </member>
        <member name="T:PCSC.Monitoring.MonitorExceptionEvent">
            <summary>An PC/SC error occurred during monitoring.</summary>
            <param name="sender">The <see cref="T:PCSC.SCardMonitor" /> sender object.</param>
            <param name="exception">An exception containting the PC/SC error code returned from the native library.</param>
        </member>
        <member name="T:PCSC.Monitoring.MonitorFactory">
            <summary>
            Smart card monitor factory
            </summary>
        </member>
        <member name="P:PCSC.Monitoring.MonitorFactory.Instance">
            <summary>
            Default factory instance. Uses <see cref="P:PCSC.ContextFactory.Instance"/> for context creation.
            </summary>
        </member>
        <member name="M:PCSC.Monitoring.MonitorFactory.#ctor(PCSC.IContextFactory)">
            <summary>
            Creates a new monitor factory. 
            </summary>
            <param name="contextFactory">Context factory that creates <see cref="T:PCSC.ISCardContext"/> for the new <see cref="T:PCSC.Monitoring.ISCardMonitor"/> instances.</param>
        </member>
        <member name="M:PCSC.Monitoring.MonitorFactory.Create(PCSC.SCardScope)">
            <inheritdoc />
        </member>
        <member name="M:PCSC.Monitoring.MonitorFactory.Release(PCSC.Monitoring.ISCardMonitor)">
            <inheritdoc />
        </member>
        <member name="T:PCSC.Monitoring.SCardMonitor">
            <summary>Monitors a Smart Card reader and triggers events on status changes.</summary>
            <remarks>Creates a new thread and calls the <see cref="M:PCSC.SCardContext.GetStatusChange(System.IntPtr,PCSC.SCardReaderState[])" /> of the given <see cref="T:PCSC.ISCardContext" /> object.</remarks>
        </member>
        <member name="E:PCSC.Monitoring.SCardMonitor.StatusChanged">
             <summary>A general reader status change.</summary>
             <remarks>
                 <example>
                     <code lang="C#">
             // Create a monitor object with its own PC/SC context.
             var monitor = new SCardMonitor(
             	new SCardContext(),
             	SCardScope.System,
                 true);
            
             // Point the callback function(s) to the pre-defined method MyStatusChangedMethod.
             monitor.StatusChanged += new StatusChangeEvent(MyStatusChangedMethod);
            
             // Start to monitor the reader
             monitor.Start("OMNIKEY CardMan 5x21 00 01");
               </code>
                 </example>
             </remarks>
        </member>
        <member name="E:PCSC.Monitoring.SCardMonitor.CardInserted">
             <summary>A new card has been inserted.</summary>
             <remarks>
                 <example>
                     <code lang="C#">
             // Create a monitor object with its own PC/SC context.
             var monitor = new SCardMonitor(
             	new SCardContext(),
             	SCardScope.System,
                 true);
            
             monitor.CardInserted += new CardInsertedEvent(MyCardInsertedMethod);
            
             // Start to monitor the reader
             monitor.Start("OMNIKEY CardMan 5x21 00 01");
               </code>
                 </example>
             </remarks>
        </member>
        <member name="E:PCSC.Monitoring.SCardMonitor.CardRemoved">
             <summary>A card has been removed.</summary>
             <remarks>
                 <example>
                     <code lang="C#">
             // Create a monitor object with its own PC/SC context.
             var monitor = new SCardMonitor(
             	new SCardContext(),
             	SCardScope.System,
                 true);
            
             monitor.CardRemoved += new CardRemovedEvent(MyCardRemovedMethod);
            
             // Start to monitor the reader
             monitor.Start("OMNIKEY CardMan 5x21 00 01");
               </code>
                 </example>
             </remarks>
        </member>
        <member name="E:PCSC.Monitoring.SCardMonitor.Initialized">
             <summary>The monitor object has been initialized.</summary>
             <remarks>
                 <para>This event appears only once for each reader after calling <see cref="M:PCSC.Monitoring.SCardMonitor.Start(System.String)" /> or <see cref="M:PCSC.Monitoring.SCardMonitor.Start(System.String[])" />.</para>
                 <example>
                     <code lang="C#">
             // Create a monitor object with its own PC/SC context.
             var monitor = new SCardMonitor(
             	new SCardContext(),
             	SCardScope.System,
                 true);
            
             monitor.Initialized += new CardInitializedEvent(MyCardInitializedMethod);
            
             // Start to monitor the reader
             monitor.Start("OMNIKEY CardMan 5x21 00 01");
               </code>
                 </example>
             </remarks>
        </member>
        <member name="E:PCSC.Monitoring.SCardMonitor.MonitorException">
             <summary>An PC/SC error occurred during monitoring.</summary>
             <remarks>
                 <example>
                     <code lang="C#">
             // Create a monitor object with its own PC/SC context.
             var monitor = new SCardMonitor(
             	new SCardContext(),
             	SCardScope.System,
                 true);
            
             monitor.MonitorException += new MonitorExceptionEvent(MyMonitorExceptionMethod);
            
             // Start to monitor the reader
             monitor.Start("OMNIKEY CardMan 5x21 00 01");
               </code>
                 </example>
             </remarks>
        </member>
        <member name="P:PCSC.Monitoring.SCardMonitor.ReaderNames">
            <summary>All readers that are currently being monitored.</summary>
            <value>A <see cref="T:System.String" /> array of reader names. <see langword="null" /> if no readers is being monitored.</value>
        </member>
        <member name="P:PCSC.Monitoring.SCardMonitor.Monitoring">
            <summary>Indicates if there are readers currently monitored.</summary>
            <value>
                <list type="table">
                    <listheader>
                        <term>Value</term>
                        <description>Description</description>
                    </listheader>
                    <item>
                        <term>
                            <see langword="true" />
                        </term>
                        <description>Monitoring process ongoing.</description>
                    </item>
                    <item>
                        <term>
                            <see langword="false" />
                        </term>
                        <description>No monitoring.</description>
                    </item>
                </list>
            </value>
        </member>
        <member name="M:PCSC.Monitoring.SCardMonitor.Finalize">
            <summary>
            Releases unmanaged resources and stops the background thread (if running).
            </summary>
        </member>
        <member name="M:PCSC.Monitoring.SCardMonitor.#ctor(PCSC.IContextFactory,PCSC.SCardScope)">
            <summary>Creates a new SCardMonitor object that is able to listen for certain smart card / reader changes.</summary>
            <param name="contextFactory">A smartcard context factory</param>
            <param name="scope">Scope of the establishment. This can either be a local or remote connection.</param>
        </member>
        <member name="M:PCSC.Monitoring.SCardMonitor.GetCurrentStateValue(System.Int32)">
            <summary>Returns the current state of a reader that is currently being monitored.</summary>
            <param name="index">The number of the desired reader. The index must be between 0 and (<see cref="P:PCSC.Monitoring.SCardMonitor.ReaderCount" /> - 1).</param>
            <returns>The current state of reader with index number <paramref name="index" />.</returns>
            <remarks>This method will throw an <see cref="T:System.ArgumentOutOfRangeException" /> if the specified <paramref name="index" /> is invalid. You can enumerate all readers currently monitored with the <see cref="P:PCSC.Monitoring.SCardMonitor.ReaderNames" /> property.</remarks>
            <exception cref="T:System.ArgumentOutOfRangeException">If the specified <paramref name="index" /> is invalid.</exception>
        </member>
        <member name="M:PCSC.Monitoring.SCardMonitor.GetCurrentState(System.Int32)">
            <summary>Returns the current state of a reader that is currently being monitored.</summary>
            <param name="index">The number of the desired reader. The index must be between 0 and (<see cref="P:PCSC.Monitoring.SCardMonitor.ReaderCount" /> - 1).</param>
            <returns>The current state of reader with index number <paramref name="index" />.</returns>
            <remarks>This method will throw an <see cref="T:System.ArgumentOutOfRangeException" /> if the specified <paramref name="index" /> is invalid. You can enumerate all readers currently monitored with the <see cref="P:PCSC.Monitoring.SCardMonitor.ReaderNames" /> property.</remarks>
            <exception cref="T:System.ArgumentOutOfRangeException">If the specified <paramref name="index" /> is invalid.</exception>
        </member>
        <member name="M:PCSC.Monitoring.SCardMonitor.GetReaderName(System.Int32)">
            <summary>Returns the reader name of a given <paramref name="index" />.</summary>
            <param name="index">The number of the desired reader. The index must be between 0 and (<see cref="P:PCSC.Monitoring.SCardMonitor.ReaderCount" /> - 1).</param>
            <returns>A reader name.</returns>
            <remarks>This method will throw an <see cref="T:System.ArgumentOutOfRangeException" /> if the specified <paramref name="index" /> is invalid. You can enumerate all readers currently monitored with the <see cref="P:PCSC.Monitoring.SCardMonitor.ReaderNames" /> property.</remarks>
            <exception cref="T:System.ArgumentOutOfRangeException">If the specified <paramref name="index" /> is invalid.</exception>
        </member>
        <member name="P:PCSC.Monitoring.SCardMonitor.ReaderCount">
            <summary>The number of readers that currently being monitored.</summary>
            <value>Return 0 if no reader is being monitored.</value>
        </member>
        <member name="M:PCSC.Monitoring.SCardMonitor.Dispose">
            <summary>Disposes the object.</summary>
            <remarks>Dispose will call <see cref="M:PCSC.Monitoring.SCardMonitor.Cancel" /> in order to stop the background thread. The application context will be disposed if you configured the monitor to do so at construction time.</remarks>
        </member>
        <member name="M:PCSC.Monitoring.SCardMonitor.Dispose(System.Boolean)">
            <summary>Disposes the object.</summary>
            <param name="disposing">Ignored. It will call <see cref="M:PCSC.Monitoring.SCardMonitor.Cancel" /> in order to stop the background thread. The application context will be disposed if the user configured the monitor to do so at construction time.</param>
        </member>
        <member name="M:PCSC.Monitoring.SCardMonitor.Cancel">
            <summary>Cancels the monitoring of all readers that are currently being monitored.</summary>
            <remarks>This will end the monitoring. The method calls the <see cref="M:PCSC.ISCardContext.Cancel" /> method of its Application Context to the PC/SC Resource Manager.</remarks>
        </member>
        <member name="M:PCSC.Monitoring.SCardMonitor.Start(System.String)">
             <param name="readerName">The Smart Card reader that shall be monitored.</param>
             <summary>Starts to monitor a single Smart Card reader for status changes.</summary>
             <remarks>
                 <example>
                     <code lang="C#">
             // Create a new monitor object with its own PC/SC context.
             var monitor = new SCardMonitor(
             	new SCardContext(),
             	SCardScope.System,
                 true);
            
             // Start to monitor a single reader.
             monitor.Start("OMNIKEY CardMan 5x21 00 00");
               </code>
                 </example>
                 <para>Do not forget to register for at least one event:
                     <list type="table">
                         <listheader><term>Event</term><description>Description</description></listheader>
                         <item><term><see cref="E:PCSC.Monitoring.SCardMonitor.CardInserted" /></term><description>A new card has been inserted.</description></item>
                         <item><term><see cref="E:PCSC.Monitoring.SCardMonitor.CardRemoved" /></term><description>A card has been removed.</description></item>
                         <item><term><see cref="E:PCSC.Monitoring.SCardMonitor.Initialized" /></term><description>Initial status.</description></item>
                         <item><term><see cref="E:PCSC.Monitoring.SCardMonitor.StatusChanged" /></term><description>A general status change.</description></item>
                         <item><term><see cref="E:PCSC.Monitoring.SCardMonitor.MonitorException" /></term><description>An error occurred.</description></item>
                     </list></para>
             </remarks>
        </member>
        <member name="M:PCSC.Monitoring.SCardMonitor.Start(System.String[])">
             <param name="readerNames">A <see cref="T:System.String" /> array of reader names that shall be monitored.</param>
             <summary>Starts to monitor a range Smart Card readers for status changes.</summary>
             <remarks>
                 <example>
                     <code lang="C#">
             string [] readerNames;
             using (var ctx = new SCardContext()) {
                 ctx.Establish(SCardScope.System);
                 // Retrieve the names of all installed readers.
                 readerNames = ctx.GetReaders();
                 ctx.Release();
             }
            
             // Create a new monitor object with its own PC/SC context.
             var monitor = new SCardMonitor(
             	new SCardContext(),
             	SCardScope.System,
                 true);
            
             foreach (string reader in readerNames) {
             	Console.WriteLine("Start monitoring for reader {0}.", reader);
             }
            
             // Start monitoring multiple readers.
             monitor.Start(readerNames);
             </code>
                 </example>
                 <para>Do not forget to register for at least one event:
                     <list type="table">
                         <listheader><term>Event</term><description>Description</description></listheader>
                         <item><term><see cref="E:PCSC.Monitoring.SCardMonitor.CardInserted" /></term><description>A new card has been inserted.</description></item>
                         <item><term><see cref="E:PCSC.Monitoring.SCardMonitor.CardRemoved" /></term><description>A card has been removed.</description></item>
                         <item><term><see cref="E:PCSC.Monitoring.SCardMonitor.Initialized" /></term><description>Initial status.</description></item>
                         <item><term><see cref="E:PCSC.Monitoring.SCardMonitor.StatusChanged" /></term><description>A general status change.</description></item>
                         <item><term><see cref="E:PCSC.Monitoring.SCardMonitor.MonitorException" /></term><description>An error occurred.</description></item>
                     </list></para>
             </remarks>
        </member>
        <member name="T:PCSC.Monitoring.StatusChangeEvent">
            <summary>A general reader status change.</summary>
            <param name="sender">The <see cref="T:PCSC.ISCardMonitor" /> sender object.</param>
            <param name="e">Reader status information.</param>
            <remarks>
                <example>
                    <code lang="C#">
            // Create a monitor object with its own PC/SC context.
            var monitor = new SCardMonitor(
            	new SCardContext(),
            	SCardScope.System,
                true);
            
            // Point the callback function(s) to the pre-defined method MyStatusChangedMethod.
            monitor.StatusChanged += new StatusChangeEvent(MyStatusChangedMethod);
            
            // Start to monitor the reader
            monitor.Start("OMNIKEY CardMan 5x21 00 01");
              </code>
                </example>
            </remarks>
        </member>
        <member name="T:PCSC.Monitoring.StatusChangeEventArgs">
            <summary>Information about a smart card reader status change.</summary>
        </member>
        <member name="P:PCSC.Monitoring.StatusChangeEventArgs.LastState">
            <summary>The reader's status before this event.</summary>
            <remarks>
                <para>Is a bit mask containing one or more of the following values:</para>
                <list type="table">
                    <listheader><term>State</term><description>Description</description></listheader>
                    <item><term><see cref="F:PCSC.SCRState.Unaware" /></term><description>The application is unaware of the current state, and would like to know. The use of this value results in an immediate return from state transition monitoring services. This is represented by all bits set to zero.</description></item>
                    <item><term><see cref="F:PCSC.SCRState.Ignore" /></term><description>This reader should be ignored</description></item>
                    <item><term><see cref="F:PCSC.SCRState.Changed" /></term><description>There is a difference between the state believed by the application, and the state known by the resource manager. When this bit is set, the application may assume a significant state change has occurred on this reader.</description></item>
                    <item><term><see cref="F:PCSC.SCRState.Unknown" /></term><description>The given reader name is not recognized by the resource manager. If this bit is set, then <see cref="F:PCSC.SCRState.Changed" /> and <see cref="F:PCSC.SCRState.Ignore" /> will also be set</description></item>
                    <item><term><see cref="F:PCSC.SCRState.Unavailable" /></term><description>The actual state of this reader is not available. If this bit is set, then all the following bits are clear.</description></item>
                    <item><term><see cref="F:PCSC.SCRState.Empty" /></term><description>There is no card in the reader. If this bit is set, all the following bits will be clear</description></item>
                    <item><term><see cref="F:PCSC.SCRState.Present" /></term><description>There is a card in the reader</description></item>
                    <item><term><see cref="F:PCSC.SCRState.Exclusive" /></term><description>The card in the reader is allocated for exclusive use by another application. If this bit is set, <see cref="F:PCSC.SCRState.Present" /> will also be set.</description></item>
                    <item><term><see cref="F:PCSC.SCRState.InUse" /></term><description>The card in the reader is in use by one or more other applications, but may be connected to in shared mode. If this bit is set, <see cref="F:PCSC.SCRState.Present" /> will also be set.</description></item>
                    <item><term><see cref="F:PCSC.SCRState.Mute" /></term><description>There is an unresponsive card in the reader.</description></item>
                </list>
            </remarks>
        </member>
        <member name="P:PCSC.Monitoring.StatusChangeEventArgs.NewState">
            <summary>The new status of this reader.</summary>
            <remarks>
                <para>Is a bit mask containing one or more of the following values:</para>
                <list type="table">
                    <listheader><term>State</term><description>Description</description></listheader>
                    <item><term><see cref="F:PCSC.SCRState.Unaware" /></term><description>The application is unaware of the current state, and would like to know. The use of this value results in an immediate return from state transition monitoring services. This is represented by all bits set to zero.</description></item>
                    <item><term><see cref="F:PCSC.SCRState.Ignore" /></term><description>This reader should be ignored</description></item>
                    <item><term><see cref="F:PCSC.SCRState.Changed" /></term><description>There is a difference between the state believed by the application, and the state known by the resource manager. When this bit is set, the application may assume a significant state change has occurred on this reader.</description></item>
                    <item><term><see cref="F:PCSC.SCRState.Unknown" /></term><description>The given reader name is not recognized by the resource manager. If this bit is set, then <see cref="F:PCSC.SCRState.Changed" /> and <see cref="F:PCSC.SCRState.Ignore" /> will also be set</description></item>
                    <item><term><see cref="F:PCSC.SCRState.Unavailable" /></term><description>The actual state of this reader is not available. If this bit is set, then all the following bits are clear.</description></item>
                    <item><term><see cref="F:PCSC.SCRState.Empty" /></term><description>There is no card in the reader. If this bit is set, all the following bits will be clear</description></item>
                    <item><term><see cref="F:PCSC.SCRState.Present" /></term><description>There is a card in the reader</description></item>
                    <item><term><see cref="F:PCSC.SCRState.Exclusive" /></term><description>The card in the reader is allocated for exclusive use by another application. If this bit is set, <see cref="F:PCSC.SCRState.Present" /> will also be set.</description></item>
                    <item><term><see cref="F:PCSC.SCRState.InUse" /></term><description>The card in the reader is in use by one or more other applications, but may be connected to in shared mode. If this bit is set, <see cref="F:PCSC.SCRState.Present" /> will also be set.</description></item>
                    <item><term><see cref="F:PCSC.SCRState.Mute" /></term><description>There is an unresponsive card in the reader.</description></item>
                </list>
            </remarks>
        </member>
        <member name="M:PCSC.Monitoring.StatusChangeEventArgs.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:PCSC.Monitoring.StatusChangeEventArgs"/> class.
            </summary>
        </member>
        <member name="M:PCSC.Monitoring.StatusChangeEventArgs.#ctor(System.String,PCSC.SCRState,PCSC.SCRState,System.Byte[])">
            <summary>
            Initializes a new instance of the <see cref="T:PCSC.Monitoring.StatusChangeEventArgs"/> class.
            </summary>
            <param name="readerName">Name of the reader.</param>
            <param name="lastState">The last state.</param>
            <param name="newState">The new state.</param>
            <param name="atr">The card's ATR.</param>
        </member>
        <member name="T:PCSC.ReaderStatus">
            <summary>
            Holds information about the reader status.
            </summary>
        </member>
        <member name="P:PCSC.ReaderStatus.State">
            <summary>
            A bit mask that represents the reader status
            </summary>
        </member>
        <member name="P:PCSC.ReaderStatus.Protocol">
            <summary>
            The reader's currently used protocol.
            </summary>
        </member>
        <member name="M:PCSC.ReaderStatus.GetReaderNames">
            <summary>
            A list of the reader's friendly names
            </summary>
        </member>
        <member name="M:PCSC.ReaderStatus.GetAtr">
            <summary>
            Gets the card's ATR.
            </summary>
            <returns>A byte array containing the ATR or <c>null</c> if no card connected.</returns>
        </member>
        <member name="M:PCSC.ReaderStatus.#ctor(System.String[],PCSC.SCardState,PCSC.SCardProtocol,System.Byte[])">
            <summary>
            Creates a new instance
            </summary>
            <param name="readerNames">The reader's friendly names</param>
            <param name="state">A bit mask that represents the reader status</param>
            <param name="protocol">The reader's currently used protocol.</param>
            <param name="atr">The card's ATR if available</param>
        </member>
        <member name="T:PCSC.SCardAttribute">
             <summary>Smart card reader attribute enumeration.</summary>
            <remarks>Can be used as parameter for the following methods:
            <list type="bullet">
            <item><term><see cref="M:PCSC.SCardReader.GetAttrib(PCSC.SCardAttribute,System.Byte[]@)" /></term></item>
            <item><term><see cref="M:PCSC.SCardReader.GetAttrib(PCSC.SCardAttribute,System.Byte[],System.Int32@)" /></term></item>
            <item><term><see cref="M:PCSC.SCardReader.SetAttrib(PCSC.SCardAttribute,System.Byte[])" /></term></item>
            <item><term><see cref="M:PCSC.SCardReader.SetAttrib(PCSC.SCardAttribute,System.Byte[],System.Int32)" /></term></item>
            </list></remarks>
        </member>
        <member name="F:PCSC.SCardAttribute.VendorName">
            <summary>
            Vendor name. (SCARD_ATTR_VENDOR_NAME)
            </summary>
        </member>
        <member name="F:PCSC.SCardAttribute.VendorInterfaceDeviceType">
            <summary>
            Vendor-supplied interface device type (model designation of reader). (SCARD_ATTR_VENDOR_IFD_TYPE)
            </summary>
        </member>
        <member name="F:PCSC.SCardAttribute.VendorInterfaceDeviceTypeVersion">
            <summary>
            Vendor-supplied interface device version (DWORD in the form 0xMMmmbbbb where MM = major version, mm = minor version, and bbbb = build number).  (SCARD_ATTR_VENDOR_IFD_VERSION)
            </summary>
        </member>
        <member name="F:PCSC.SCardAttribute.VendorInterfaceDeviceTypeSerialNumber">
            <summary>
            Vendor-supplied interface device serial number. (SCARD_ATTR_VENDOR_IFD_SERIAL_NO)
            </summary>
        </member>
        <member name="F:PCSC.SCardAttribute.ChannelId">
            <summary>
            DWORD encoded as 0xDDDDCCCC, where DDDD = data channel type and CCCC = channel number (SCARD_ATTR_CHANNEL_ID)
            </summary>
        </member>
        <member name="F:PCSC.SCardAttribute.AsyncProtocolTypes">
            <summary>
            Asynchronous protocol types (SCARD_ATTR_ASYNC_PROTOCOL_TYPES)
            </summary>
        </member>
        <member name="F:PCSC.SCardAttribute.DefaultClockRate">
            <summary>
            Default clock rate, in kHz. (SCARD_ATTR_DEFAULT_CLK)
            </summary>
        </member>
        <member name="F:PCSC.SCardAttribute.MaxClockRate">
            <summary>
            Maximum clock rate, in kHz. (SCARD_ATTR_MAX_CLK)
            </summary>
        </member>
        <member name="F:PCSC.SCardAttribute.DefaultDataRate">
            <summary>
            Default data rate, in bps. (SCARD_ATTR_DEFAULT_DATA_RATE)
            </summary>
        </member>
        <member name="F:PCSC.SCardAttribute.MaxDataRate">
            <summary>
            Maximum data rate, in bps. (SCARD_ATTR_MAX_DATA_RATE)
            </summary>
        </member>
        <member name="F:PCSC.SCardAttribute.MaxInformationFileSizeDevice">
            <summary>
            Maximum bytes for information file size device. (SCARD_ATTR_MAX_IFSD)
            </summary>
        </member>
        <member name="F:PCSC.SCardAttribute.SyncProtocolTypes">
            <summary>
            Synchronous protocol types (SCARD_ATTR_SYNC_PROTOCOL_TYPES)
            </summary>
        </member>
        <member name="F:PCSC.SCardAttribute.PowerManagementSupport">
            <summary>
            Zero if device does not support power down while smart card is inserted. Nonzero otherwise. (SCARD_ATTR_POWER_MGMT_SUPPORT)
            </summary>
        </member>
        <member name="F:PCSC.SCardAttribute.UserToCardAuthDevice">
            <summary>
            User to card authentication device (SCARD_ATTR_USER_TO_CARD_AUTH_DEVICE)
            </summary>
        </member>
        <member name="F:PCSC.SCardAttribute.UserAuthInputDevice">
            <summary>
            User authentication input device (SCARD_ATTR_USER_AUTH_INPUT_DEVICE)
            </summary>
        </member>
        <member name="F:PCSC.SCardAttribute.Characteristics">
            <summary>
            DWORD indicating which mechanical characteristics are supported. If zero, no special characteristics are supported. Note that multiple bits can be set (SCARD_ATTR_CHARACTERISTICS)
            </summary>
        </member>
        <member name="F:PCSC.SCardAttribute.CurrentProtocolType">
            <summary>
            Current protocol type (SCARD_ATTR_CURRENT_PROTOCOL_TYPE)
            </summary>
        </member>
        <member name="F:PCSC.SCardAttribute.CurrentClockRate">
            <summary>
            Current clock rate, in kHz. (SCARD_ATTR_CURRENT_CLK)
            </summary>
        </member>
        <member name="F:PCSC.SCardAttribute.CurrentClockConversionFactor">
            <summary>
            Clock conversion factor. (SCARD_ATTR_CURRENT_F)
            </summary>
        </member>
        <member name="F:PCSC.SCardAttribute.CurrentBitRateConversionFactor">
            <summary>
            Bit rate conversion factor. (SCARD_ATTR_CURRENT_D)
            </summary>
        </member>
        <member name="F:PCSC.SCardAttribute.CurrentGuardTime">
            <summary>
            Current guard time. (SCARD_ATTR_CURRENT_N)
            </summary>
        </member>
        <member name="F:PCSC.SCardAttribute.CurrentWaitingTime">
            <summary>
            Current work waiting time. (SCARD_ATTR_CURRENT_W)
            </summary>
        </member>
        <member name="F:PCSC.SCardAttribute.CurrentInformationFieldSizeCard">
            <summary>
            Current byte size for information field size card. (SCARD_ATTR_CURRENT_IFSC)
            </summary>
        </member>
        <member name="F:PCSC.SCardAttribute.CurrentInformationFieldSizeDevice">
            <summary>
            Current byte size for information field size device. (SCARD_ATTR_CURRENT_IFSD)
            </summary>
        </member>
        <member name="F:PCSC.SCardAttribute.CurrentBlockWaitingTime">
            <summary>
            Current block waiting time. (SCARD_ATTR_CURRENT_BWT)
            </summary>
        </member>
        <member name="F:PCSC.SCardAttribute.CurrentCharacterWaitingTime">
            <summary>
            Current character waiting time. (SCARD_ATTR_CURRENT_CWT)
            </summary>
        </member>
        <member name="F:PCSC.SCardAttribute.CurrentErrorBlockControlEncoding">
            <summary>
            Current error block control encoding. (SCARD_ATTR_CURRENT_EBC_ENCODING)
            </summary>
        </member>
        <member name="F:PCSC.SCardAttribute.ExtendedBlockWaitTime">
            <summary>
            Extended block wait time. (SCARD_ATTR_EXTENDED_BWT)
            </summary>
        </member>
        <member name="F:PCSC.SCardAttribute.ICCPresence">
            <summary>
            Single byte indicating smart card presence(SCARD_ATTR_ICC_PRESENCE)
            </summary>
        </member>
        <member name="F:PCSC.SCardAttribute.ICCInterfaceStatus">
            <summary>
            Single byte. Zero if smart card electrical contact is not active; nonzero if contact is active. (SCARD_ATTR_ICC_INTERFACE_STATUS)
            </summary>
        </member>
        <member name="F:PCSC.SCardAttribute.CurrentIOState">
            <summary>
            Current IO state (SCARD_ATTR_CURRENT_IO_STATE)
            </summary>
        </member>
        <member name="F:PCSC.SCardAttribute.AtrString">
            <summary>
            Answer to reset (ATR) string. (SCARD_ATTR_ATR_STRING)
            </summary>
        </member>
        <member name="F:PCSC.SCardAttribute.AnswerToResetString">
            <summary>
            Answer to reset (ATR) string. (SCARD_ATTR_ATR_STRING)
            </summary>
        </member>
        <member name="F:PCSC.SCardAttribute.ICCTypePerAtr">
            <summary>
            Single byte indicating smart card type (SCARD_ATTR_ICC_TYPE_PER_ATR)
            </summary>
        </member>
        <member name="F:PCSC.SCardAttribute.EscReset">
            <summary>
            Esc reset (SCARD_ATTR_ESC_RESET)
            </summary>
        </member>
        <member name="F:PCSC.SCardAttribute.EscCancel">
            <summary>
            Esc cancel (SCARD_ATTR_ESC_CANCEL)
            </summary>
        </member>
        <member name="F:PCSC.SCardAttribute.EscAuthRequest">
            <summary>
            Esc authentication request (SCARD_ATTR_ESC_AUTHREQUEST)
            </summary>
        </member>
        <member name="F:PCSC.SCardAttribute.MaxInput">
            <summary>
            Maximum input (SCARD_ATTR_MAXINPUT)
            </summary>
        </member>
        <member name="F:PCSC.SCardAttribute.DeviceUnit">
            <summary>
            Instance of this vendor's reader attached to the computer. The first instance will be device unit 0, the next will be unit 1 (if it is the same brand of reader) and so on. Two different brands of readers will both have zero for this value. (SCARD_ATTR_DEVICE_UNIT)
            </summary>
        </member>
        <member name="F:PCSC.SCardAttribute.DeviceInUse">
            <summary>
            Reserved for future use. (SCARD_ATTR_DEVICE_IN_USE)
            </summary>
        </member>
        <member name="F:PCSC.SCardAttribute.DeviceFriendlyNameA">
            <summary>
            Device friendly name ASCII (SCARD_ATTR_DEVICE_FRIENDLY_NAME_A)
            </summary>
        </member>
        <member name="F:PCSC.SCardAttribute.DeviceSystemNameA">
            <summary>
            Device system name ASCII (SCARD_ATTR_DEVICE_SYSTEM_NAME_A)
            </summary>
        </member>
        <member name="F:PCSC.SCardAttribute.DeviceFriendlyNameW">
            <summary>
            Device friendly name UNICODE (SCARD_ATTR_DEVICE_FRIENDLY_NAME_W)
            </summary>
        </member>
        <member name="F:PCSC.SCardAttribute.DeviceSystemNameW">
            <summary>
            Device system name UNICODE (SCARD_ATTR_DEVICE_SYSTEM_NAME_W)
            </summary>
        </member>
        <member name="F:PCSC.SCardAttribute.SupressT1InformationFileSizeRequest">
            <summary>
            Supress T1 information file size request (SCARD_ATTR_SUPRESS_T1_IFS_REQUEST)
            </summary>
        </member>
        <member name="F:PCSC.SCardAttribute.DeviceFriendlyName">
            <summary>
            Device friendly name (SCARD_ATTR_DEVICE_FRIENDLY_NAME)
            </summary>
        </member>
        <member name="F:PCSC.SCardAttribute.DeviceSystemName">
            <summary>
            Device system name (SCARD_ATTR_DEVICE_SYSTEM_NAME)
            </summary>
        </member>
        <member name="T:PCSC.SCardClass">
            <summary>
            Smart card class
            </summary>
        </member>
        <member name="F:PCSC.SCardClass.VendorInfo">
            <summary>Vendor information definitions</summary>
        </member>
        <member name="F:PCSC.SCardClass.Communication">
            <summary>Communication definitions</summary>
        </member>
        <member name="F:PCSC.SCardClass.Protocol">
            <summary>Protocol definitions</summary>
        </member>
        <member name="F:PCSC.SCardClass.PowerManagement">
            <summary>Power Management definitions</summary>
        </member>
        <member name="F:PCSC.SCardClass.Security">
            <summary>Security Assurance definitions</summary>
        </member>
        <member name="F:PCSC.SCardClass.Mechanical">
            <summary>Mechanical characteristic definitions</summary>
        </member>
        <member name="F:PCSC.SCardClass.VendorDefined">
            <summary>Vendor specific definitions</summary>
        </member>
        <member name="F:PCSC.SCardClass.InterfaceDeviceProtocol">
            <summary>Interface Device Protocol options</summary>
        </member>
        <member name="F:PCSC.SCardClass.ICCState">
            <summary>ICC State specific definitions</summary>
        </member>
        <member name="F:PCSC.SCardClass.System">
            <summary>System-specific definitions</summary>
        </member>
        <member name="T:PCSC.SCardContext">
            <summary>Manages an application context to the PC/SC Resource Manager.</summary>
            <remarks>Each thread of an application shall use its own SCardContext.</remarks>
        </member>
        <member name="P:PCSC.SCardContext.Handle">
            <inheritdoc />
        </member>
        <member name="P:PCSC.SCardContext.MaxAtrSize">
            <inheritdoc />
        </member>
        <member name="P:PCSC.SCardContext.Infinite">
            <inheritdoc />
        </member>
        <member name="P:PCSC.SCardContext.MAX_ATR_SIZE">
            <summary>Maximum ATR size.</summary>
            <value>
                <list type="table">
                    <listheader><term>Platform</term><description>Maximum ATR size</description></listheader>
                    <item>
                        <term>Windows (Winscard.dll)</term>
                        <description>36</description>
                    </item>
                    <item>
                        <term>UNIX/Linux (PC/SClite)</term>
                        <description>33</description>
                    </item>
                </list>
            </value>
            <remarks>Attention: Size depends on platform.</remarks>
        </member>
        <member name="P:PCSC.SCardContext.INFINITE">
            <summary>Infinite timeout.</summary>
            <value>0xFFFFFFFF</value>
        </member>
        <member name="M:PCSC.SCardContext.Finalize">
            <summary>
            Destroys application context to the PC/SC Resource Manager.
            </summary>
        </member>
        <member name="M:PCSC.SCardContext.#ctor">
            <summary>
            Creates a new context instance
            </summary>
        </member>
        <member name="M:PCSC.SCardContext.Establish(PCSC.SCardScope)">
            <inheritdoc />
        </member>
        <member name="M:PCSC.SCardContext.Release">
            <inheritdoc />
        </member>
        <member name="M:PCSC.SCardContext.Connect(System.String,PCSC.SCardShareMode,PCSC.SCardProtocol)">
            <inheritdoc />
        </member>
        <member name="M:PCSC.SCardContext.ConnectReader(System.String,PCSC.SCardShareMode,PCSC.SCardProtocol)">
            <inheritdoc />
        </member>
        <member name="M:PCSC.SCardContext.CheckValidity">
            <inheritdoc />
        </member>
        <member name="M:PCSC.SCardContext.IsValid">
            <inheritdoc />
        </member>
        <member name="M:PCSC.SCardContext.Dispose">
            <inheritdoc />
        </member>
        <member name="M:PCSC.SCardContext.Dispose(System.Boolean)">
            <summary>Disposes a PC/SC application context.</summary>
            <param name="disposing">Ignored. If an application context to the PC/SC Resource Manager has been established it will call the <see cref="M:PCSC.SCardContext.Release" /> method.</param>
        </member>
        <member name="M:PCSC.SCardContext.GetReaders(System.String[])">
            <inheritdoc />
        </member>
        <member name="M:PCSC.SCardContext.GetReaders">
            <inheritdoc />
        </member>
        <member name="M:PCSC.SCardContext.GetReaderGroups">
            <inheritdoc />
        </member>
        <member name="M:PCSC.SCardContext.GetReaderStatus(System.String)">
            <inheritdoc />
        </member>
        <member name="M:PCSC.SCardContext.GetReaderStatus(System.String[])">
            <inheritdoc />
        </member>
        <member name="M:PCSC.SCardContext.GetStatusChange(System.IntPtr,PCSC.SCardReaderState[])">
            <inheritdoc />
        </member>
        <member name="M:PCSC.SCardContext.Cancel">
            <inheritdoc />
        </member>
        <member name="T:PCSC.SCardError">
            <summary>Error and return codes.</summary>
        </member>
        <member name="F:PCSC.SCardError.Success">
            <summary>No error. (SCARD_S_SUCCESS)</summary>
        </member>
        <member name="F:PCSC.SCardError.InternalError">
            <summary>An internal consistency check failed. (SCARD_F_INTERNAL_ERROR)</summary>
        </member>
        <member name="F:PCSC.SCardError.Cancelled">
            <summary>The action was cancelled by an <see cref="M:PCSC.ISCardContext.Cancel" /> request. (SCARD_E_CANCELLED)</summary>
        </member>
        <member name="F:PCSC.SCardError.InvalidHandle">
            <summary>The supplied handle was invalid. (SCARD_E_INVALID_HANDLE)</summary>
        </member>
        <member name="F:PCSC.SCardError.InvalidHandleWindows">
            <summary>The supplied handle was invalid. (ERROR_INVALID_HANDLE)</summary>
        </member>
        <member name="F:PCSC.SCardError.InvalidParameter">
            <summary>One or more of the supplied parameters could not be properly interpreted. (SCARD_E_INVALID_PARAMETER)</summary>
        </member>
        <member name="F:PCSC.SCardError.InvalidTarget">
            <summary>Registry startup information is missing or invalid. (SCARD_E_INVALID_TARGET)</summary>
        </member>
        <member name="F:PCSC.SCardError.NoMemory">
            <summary>Not enough memory available to complete this command. (SCARD_E_NO_MEMORY)</summary>
        </member>
        <member name="F:PCSC.SCardError.WaitedTooLong">
            <summary>An internal consistency timer has expired. (SCARD_F_WAITED_TOO_LONG)</summary>
        </member>
        <member name="F:PCSC.SCardError.InsufficientBuffer">
            <summary>The data buffer to receive returned data is too small for the returned data. (SCARD_E_INSUFFICIENT_BUFFER)</summary>
        </member>
        <member name="F:PCSC.SCardError.WinErrorInsufficientBuffer">
            <summary>Windows error ERROR_INSUFFICIENT_BUFFER: The data area passed to a system call is too small.</summary>
        </member>
        <member name="F:PCSC.SCardError.UnknownReader">
            <summary>The specified reader name is not recognized. (SCARD_E_UNKNOWN_READER)</summary>
        </member>
        <member name="F:PCSC.SCardError.Timeout">
            <summary>The user-specified timeout value has expired. (SCARD_E_TIMEOUT)</summary>
        </member>
        <member name="F:PCSC.SCardError.SharingViolation">
            <summary>The smart card cannot be accessed because of other connections outstanding. (SCARD_E_SHARING_VIOLATION)</summary>
        </member>
        <member name="F:PCSC.SCardError.NoSmartcard">
            <summary>The operation requires a Smart Card, but no Smart Card is currently in the device. (SCARD_E_NO_SMARTCARD)</summary>
        </member>
        <member name="F:PCSC.SCardError.UnknownCard">
            <summary>The specified smart card name is not recognized. (SCARD_E_UNKNOWN_CARD)</summary>
        </member>
        <member name="F:PCSC.SCardError.CannotDispose">
            <summary>The system could not dispose of the media in the requested manner. (SCARD_E_CANT_DISPOSE)</summary>
        </member>
        <member name="F:PCSC.SCardError.ProtocolMismatch">
            <summary>The requested protocols are incompatible with the protocol currently in use with the smart card. (SCARD_E_PROTO_MISMATCH)</summary>
        </member>
        <member name="F:PCSC.SCardError.NotReady">
            <summary>The reader or smart card is not ready to accept commands. (SCARD_E_NOT_READY)</summary>
        </member>
        <member name="F:PCSC.SCardError.InvalidValue">
            <summary>One or more of the supplied parameters values could not be properly interpreted. (SCARD_E_INVALID_VALUE)</summary>
        </member>
        <member name="F:PCSC.SCardError.SystemCancelled">
            <summary>The action was cancelled by the system, presumably to log off or shut down. (SCARD_E_SYSTEM_CANCELLED)</summary>
        </member>
        <member name="F:PCSC.SCardError.CommunicationError">
            <summary>An internal communications error has been detected. (SCARD_F_COMM_ERROR)</summary>
        </member>
        <member name="F:PCSC.SCardError.UnknownError">
            <summary>An internal error has been detected, but the source is unknown. (SCARD_F_UNKNOWN_ERROR)</summary>
        </member>
        <member name="F:PCSC.SCardError.InvalidAtr">
            <summary>An ATR obtained from the registry is not a valid ATR string. (SCARD_E_INVALID_ATR)</summary>
        </member>
        <member name="F:PCSC.SCardError.NotTransacted">
            <summary>An attempt was made to end a non-existent transaction. (SCARD_E_NOT_TRANSACTED)</summary>
        </member>
        <member name="F:PCSC.SCardError.ReaderUnavailable">
            <summary>The specified reader is not currently available for use. (SCARD_E_READER_UNAVAILABLE)</summary>
        </member>
        <member name="F:PCSC.SCardError.Shutdown">
            <summary>The operation has been aborted to allow the server application to exit. (SCARD_P_SHUTDOWN)</summary>
        </member>
        <member name="F:PCSC.SCardError.UnsupportedCard">
            <summary>The reader cannot communicate with the card, due to ATR string configuration conflicts. (SCARD_W_UNSUPPORTED_CARD)</summary>
        </member>
        <member name="F:PCSC.SCardError.UnresponsiveCard">
            <summary>The smart card is not responding to a reset. (SCARD_W_UNRESPONSIVE_CARD)</summary>
        </member>
        <member name="F:PCSC.SCardError.UnpoweredCard">
            <summary>Power has been removed from the smart card, so that further communication is not possible. (SCARD_W_UNPOWERED_CARD)</summary>
        </member>
        <member name="F:PCSC.SCardError.ResetCard">
            <summary>The smart card has been reset, so any shared state information is invalid. (SCARD_W_RESET_CARD)</summary>
        </member>
        <member name="F:PCSC.SCardError.RemovedCard">
            <summary>The smart card has been removed, so further communication is not possible. (SCARD_W_REMOVED_CARD)</summary>
        </member>
        <member name="F:PCSC.SCardError.PciTooSmall">
            <summary>The PCI Receive buffer was too small. (SCARD_E_PCI_TOO_SMALL)</summary>
        </member>
        <member name="F:PCSC.SCardError.ReaderUnsupported">
            <summary>The reader driver does not meet minimal requirements for support. (SCARD_E_READER_UNSUPPORTED)</summary>
        </member>
        <member name="F:PCSC.SCardError.DuplicateReader">
            <summary>The reader driver did not produce a unique reader name. (SCARD_E_DUPLICATE_READER)</summary>
        </member>
        <member name="F:PCSC.SCardError.CardUnsupported">
            <summary>The smart card does not meet minimal requirements for support. (SCARD_E_CARD_UNSUPPORTED)</summary>
        </member>
        <member name="F:PCSC.SCardError.NoService">
            <summary>The Smart card resource manager is not running. (SCARD_E_NO_SERVICE)</summary>
        </member>
        <member name="F:PCSC.SCardError.ServiceStopped">
            <summary>The Smart card resource manager has shut down. (SCARD_E_SERVICE_STOPPED)</summary>
        </member>
        <member name="F:PCSC.SCardError.Unexpected">
            <summary>An unexpected card error has occurred. (SCARD_E_UNEXPECTED)</summary>
        </member>
        <member name="F:PCSC.SCardError.NoReadersAvailable">
            <summary>Cannot find a smart card reader. (SCARD_E_NO_READERS_AVAILABLE)</summary>
        </member>
        <member name="F:PCSC.SCardError.UnsupportedFeature">
            PC/SC Lite specific extensions 
            <summary>Feature not supported. (SCARD_E_UNSUPPORTED_FEATURE)</summary>
        </member>
        <member name="F:PCSC.SCardError.ICCInstallation">
            <summary>No primary provider can be found for the smart card. (SCARD_E_ICC_INSTALLATION)</summary>
        </member>
        <member name="F:PCSC.SCardError.ICCCreateOrder">
            <summary>The requested order of object creation is not supported. (SCARD_E_ICC_CREATEORDER)</summary>
        </member>
        <member name="F:PCSC.SCardError.DirectoryNotFound">
            <summary>The identified directory does not exist in the smart card. (SCARD_E_DIR_NOT_FOUND)</summary>
        </member>
        <member name="F:PCSC.SCardError.FileNotFound">
            <summary>The identified file does not exist in the smart card. (SCARD_E_FILE_NOT_FOUND)</summary>
        </member>
        <member name="F:PCSC.SCardError.NoDir">
            <summary>The supplied path does not represent a smart card directory. (SCARD_E_NO_DIR)</summary>
        </member>
        <member name="F:PCSC.SCardError.NoFile">
            <summary>The supplied path does not represent a smart card file. (SCARD_E_NO_FILE)</summary>
        </member>
        <member name="F:PCSC.SCardError.NoAccess">
            <summary>Access is denied to this file. (SCARD_E_NO_ACCESS)</summary>
        </member>
        <member name="F:PCSC.SCardError.WriteTooMany">
            <summary>The smart card does not have enough memory to store the information. (SCARD_E_WRITE_TOO_MANY)</summary>
        </member>
        <member name="F:PCSC.SCardError.BadSeek">
            <summary>There was an error trying to set the smart card file object pointer. (SCARD_E_BAD_SEEK)</summary>
        </member>
        <member name="F:PCSC.SCardError.InvalidCHV">
            <summary>The supplied PIN is incorrect. (SCARD_E_INVALID_CHV)</summary>
        </member>
        <member name="F:PCSC.SCardError.UnknownResMng">
            <summary>An unrecognized error code was returned from a layered component. (SCARD_E_UNKNOWN_RES_MNG)</summary>
        </member>
        <member name="F:PCSC.SCardError.NoSuchCertificate">
            <summary>The requested certificate does not exist. (SCARD_E_NO_SUCH_CERTIFICATE)</summary>
        </member>
        <member name="F:PCSC.SCardError.CertificateUnavailable">
            <summary>The requested certificate could not be obtained. (SCARD_E_CERTIFICATE_UNAVAILABLE)</summary>
        </member>
        <member name="F:PCSC.SCardError.CommunicationDataLost">
            <summary>A communications error with the smart card has been detected. (SCARD_E_COMM_DATA_LOST)</summary>
        </member>
        <member name="F:PCSC.SCardError.NoKeyContainer">
            <summary>The requested key container does not exist on the smart card. (SCARD_E_NO_KEY_CONTAINER)</summary>
        </member>
        <member name="F:PCSC.SCardError.ServerTooBusy">
            <summary>The Smart Card Resource Manager is too busy to complete this operation. (SCARD_E_SERVER_TOO_BUSY)</summary>
        </member>
        <member name="F:PCSC.SCardError.SecurityViolation">
            <summary>Access was denied because of a security violation. (SCARD_W_SECURITY_VIOLATION)</summary>
        </member>
        <member name="F:PCSC.SCardError.WrongCHV">
            <summary>The card cannot be accessed because the wrong PIN was presented. (SCARD_W_WRONG_CHV)</summary>
        </member>
        <member name="F:PCSC.SCardError.CHVBlocked">
            <summary>The card cannot be accessed because the maximum number of PIN entry attempts has been reached. (SCARD_W_CHV_BLOCKED)</summary>
        </member>
        <member name="F:PCSC.SCardError.Eof">
            <summary>The end of the smart card file has been reached. (SCARD_W_EOF)</summary>
        </member>
        <member name="F:PCSC.SCardError.CancelledByUser">
            <summary>The user pressed "Cancel" on a Smart Card Selection Dialog. (SCARD_W_CANCELLED_BY_USER)</summary>
        </member>
        <member name="F:PCSC.SCardError.CardNotAuthenticated">
            <summary>No PIN was presented to the smart card. (SCARD_W_CARD_NOT_AUTHENTICATED)</summary>
        </member>
        <member name="T:PCSC.SCardPCI">
            <summary>Structure of protocol control information.</summary>
            <remarks>
                <para>Is a structure containing the following:</para>
                <para>
                    <example>
                        <code lang="C">
            typedef struct {
            	DWORD dwProtocol;    // SCARD_PROTOCOL_T0 or SCARD_PROTOCOL_T1
            	DWORD cbPciLength;   // Length of this structure - not used
            } SCARD_IO_REQUEST;
            </code>
                    </example>
                </para>
                <para>The pointers to the pre-defined / built-in PCI structures are determinated with dlsym() on UNIX/Linux hosts and GetProcAddress() on Windows hosts.</para>
            </remarks>
        </member>
        <member name="M:PCSC.SCardPCI.Finalize">
            <summary>Destroys the object and frees unmanaged memory.</summary>
        </member>
        <member name="M:PCSC.SCardPCI.#ctor">
            <summary>Initializes a new instance of the <see cref="T:PCSC.SCardPCI" /> class.</summary>
        </member>
        <member name="M:PCSC.SCardPCI.#ctor(PCSC.SCardProtocol,System.Int32)">
            <summary>Creates a new SCardPCI object.</summary>
            <param name="protocol">
                <list type="table"><listheader><term>Protocol Control Information</term><description>Description</description></listheader>
                    <item><term><see cref="P:PCSC.SCardPCI.T0" /></term><description>Pre-defined T=0 PCI structure. (SCARD_PCI_T0)</description></item>
                    <item><term><see cref="P:PCSC.SCardPCI.T1" /></term><description>Pre-defined T=1 PCI structure. (SCARD_PCI_T1)</description></item>
                    <item><term><see cref="P:PCSC.SCardPCI.Raw" /></term><description>Pre-defined RAW PCI structure. (SCARD_PCI_RAW)</description></item>
                </list>
            </param>
            <param name="bufLength">Size of this structure in bytes.</param>
        </member>
        <member name="M:PCSC.SCardPCI.#ctor(PCSC.SCardProtocol,System.Byte[])">
            <summary>Creates a new SCardPCI object.</summary>
            <param name="protocol">
                <list type="table">
                    <listheader><term>Protocol Control Information</term><description>Description</description></listheader>
                    <item><term><see cref="P:PCSC.SCardPCI.T0" /></term><description>Pre-defined T=0 PCI structure. (SCARD_PCI_T0)</description></item>
                    <item><term><see cref="P:PCSC.SCardPCI.T1" /></term><description>Pre-defined T=1 PCI structure. (SCARD_PCI_T1)</description></item>
                    <item><term><see cref="P:PCSC.SCardPCI.Raw" /></term><description>Pre-defined RAW PCI structure. (SCARD_PCI_RAW)</description></item>
                </list>
            </param>
            <param name="pciData">User data.</param>
        </member>
        <member name="M:PCSC.SCardPCI.Dispose">
            <summary>Disposes the instance and frees unmanaged memory.</summary>
        </member>
        <member name="M:PCSC.SCardPCI.Dispose(System.Boolean)">
            <summary>
            Disposes the instance and frees unmanaged memory.
            </summary>
            <param name="disposing">Ignored</param>
        </member>
        <member name="P:PCSC.SCardPCI.Protocol">
            <summary>Protocol</summary>
            <value>
                <list type="table">
                    <listheader><term>Protocol Control Information</term><description>Description</description></listheader>
                    <item><term><see cref="P:PCSC.SCardPCI.T0" /></term><description>Pre-defined T=0 PCI structure. (SCARD_PCI_T0)</description></item>
                    <item><term><see cref="P:PCSC.SCardPCI.T1" /></term><description>Pre-defined T=1 PCI structure. (SCARD_PCI_T1)</description></item>
                    <item><term><see cref="P:PCSC.SCardPCI.Raw" /></term><description>Pre-defined RAW PCI structure. (SCARD_PCI_RAW)</description></item>
                </list>
            </value>
        </member>
        <member name="P:PCSC.SCardPCI.PciLength">
            <summary>Size of this structure in bytes.</summary>
        </member>
        <member name="P:PCSC.SCardPCI.Data">
            <summary>User data.</summary>
        </member>
        <member name="P:PCSC.SCardPCI.T0">
            <summary>Pre-defined T=0 PCI structure. (SCARD_PCI_T0)</summary>
            <value>A pointer to the C structure in the system library.</value>
            <remarks>This pointer to the pre-defined / built-in PCI structure is determinated with dlsym() on UNIX/Linux hosts and GetProcAddress() on Windows hosts.</remarks>
        </member>
        <member name="P:PCSC.SCardPCI.T1">
            <summary>Pre-defined T=1 PCI structure. (SCARD_PCI_T1)</summary>
            <value>A pointer to the C structure in the system library.</value>
            <remarks>This pointer to the pre-defined / built-in PCI structure is determinated with dlsym() on UNIX/Linux hosts and GetProcAddress() on Windows hosts.</remarks>
        </member>
        <member name="P:PCSC.SCardPCI.Raw">
            <summary>Pre-defined RAW PCI structure. (SCARD_PCI_RAW)</summary>
            <value>A pointer to the C structure in the system library.</value>
            <remarks>This pointer to the pre-defined / built-in PCI structure is determinated with dlsym() on UNIX/Linux hosts and GetProcAddress() on Windows hosts.</remarks>
        </member>
        <member name="M:PCSC.SCardPCI.GetPci(PCSC.SCardProtocol)">
            <summary>Receives a PCI pointer to a given protocol.</summary>
            <param name="protocol">The desired protocol.</param>
            <returns>A pointer to the PCI structure in the native system library.</returns>
        </member>
        <member name="T:PCSC.SCardProtocol">
            <summary>Communication protocol use with the Smart Card.</summary>
            <remarks>This is a bit mask of acceptable protocols for the connection. You can use (<see cref="F:PCSC.SCardProtocol.T0" /> | <see cref="F:PCSC.SCardProtocol.T1" />) if you do not have a preferred protocol. </remarks>
        </member>
        <member name="F:PCSC.SCardProtocol.Unset">
            <summary>
            Protocol not defined.
            </summary>
        </member>
        <member name="F:PCSC.SCardProtocol.T0">
            <summary>T=0 active protocol.</summary>
        </member>
        <member name="F:PCSC.SCardProtocol.T1">
            <summary>T=1 active protocol.</summary>
        </member>
        <member name="F:PCSC.SCardProtocol.Raw">
            <summary>Raw active protocol. Use with memory type cards.</summary>
        </member>
        <member name="F:PCSC.SCardProtocol.T15">
            <summary>T=15 protocol.</summary>
        </member>
        <member name="F:PCSC.SCardProtocol.Any">
            <summary>(<see cref="F:PCSC.SCardProtocol.T0" /> | <see cref="F:PCSC.SCardProtocol.T1" />). IFD (Interface device) determines protocol.</summary>
        </member>
        <member name="T:PCSC.SCardReader">
            <summary>A reader class that implements the most basic PC/SC functions to operate on smart cards, RFID tags and so on.</summary>
            <remarks>It will use the system's native PC/SC API.</remarks>
        </member>
        <member name="P:PCSC.SCardReader.ReaderName">
            <inheritdoc />
        </member>
        <member name="P:PCSC.SCardReader.CurrentContext">
            <inheritdoc />
        </member>
        <member name="P:PCSC.SCardReader.CurrentShareMode">
            <inheritdoc />
        </member>
        <member name="P:PCSC.SCardReader.ActiveProtocol">
            <inheritdoc />
        </member>
        <member name="P:PCSC.SCardReader.CardHandle">
            <inheritdoc />
        </member>
        <member name="P:PCSC.SCardReader.IsConnected">
            <inheritdoc />
        </member>
        <member name="M:PCSC.SCardReader.Finalize">
            <summary>Unmanaged resources (card handle) are released!</summary>
        </member>
        <member name="M:PCSC.SCardReader.#ctor(PCSC.ISCardContext)">
            <summary>Creates a new smart card reader object.</summary>
            <param name="context">Connection context to the PC/SC Resource Manager.</param>
            <remarks>
                <example>
                    <code lang="C#">
            // Create PC/SC context
            var ctx = new SCardContext();
            ctx.Establish(SCardScope.System);
            
            // Create reader object and connect to the Smart Card
            var myReader = new SCardReader(ctx);
            var rc = myReader.Connect(
            	"OMNIKEY CardMan 5321", 
            	SCardShareMode.Shared, 
            	SCardProtocol.T1);
              </code>
                </example>
            </remarks>
            <exception cref="T:System.ArgumentNullException">If <paramref name="context"/> is <see langword="null" /></exception>
        </member>
        <member name="M:PCSC.SCardReader.Connect(System.String,PCSC.SCardShareMode,PCSC.SCardProtocol)">
            <inheritdoc />
        </member>
        <member name="M:PCSC.SCardReader.Disconnect(PCSC.SCardReaderDisposition)">
            <inheritdoc />
        </member>
        <member name="M:PCSC.SCardReader.Reconnect(PCSC.SCardShareMode,PCSC.SCardProtocol,PCSC.SCardReaderDisposition)">
            <inheritdoc />
        </member>
        <member name="M:PCSC.SCardReader.BeginTransaction">
            <inheritdoc />
        </member>
        <member name="M:PCSC.SCardReader.EndTransaction(PCSC.SCardReaderDisposition)">
            <inheritdoc />
        </member>
        <member name="M:PCSC.SCardReader.Transmit(PCSC.SCardPCI,System.Byte[],PCSC.SCardPCI,System.Byte[]@)">
            <inheritdoc />
        </member>
        <member name="M:PCSC.SCardReader.Transmit(System.IntPtr,System.Byte[],System.Byte[]@)">
            <inheritdoc />
        </member>
        <member name="M:PCSC.SCardReader.Transmit(System.IntPtr,System.Byte[],System.Int32,PCSC.SCardPCI,System.Byte[],System.Int32@)">
            <inheritdoc />
        </member>
        <member name="M:PCSC.SCardReader.Transmit(System.IntPtr,System.Byte[],PCSC.SCardPCI,System.Byte[]@)">
            <inheritdoc />
        </member>
        <member name="M:PCSC.SCardReader.Transmit(System.Byte[],System.Int32,System.Byte[],System.Int32@)">
            <inheritdoc />
        </member>
        <member name="M:PCSC.SCardReader.Transmit(System.Byte[],System.Byte[],System.Int32@)">
            <inheritdoc />
        </member>
        <member name="M:PCSC.SCardReader.Transmit(System.Byte[],System.Byte[]@)">
            <inheritdoc />
        </member>
        <member name="M:PCSC.SCardReader.Control(System.IntPtr,System.Byte[],System.Byte[]@)">
            <inheritdoc />
        </member>
        <member name="M:PCSC.SCardReader.Status(System.String[]@,PCSC.SCardState@,PCSC.SCardProtocol@,System.Byte[]@)">
            <inheritdoc />
        </member>
        <member name="M:PCSC.SCardReader.GetAttrib(PCSC.SCardAttribute,System.Byte[]@)">
            <inheritdoc />
        </member>
        <member name="M:PCSC.SCardReader.GetAttrib(System.IntPtr,System.Byte[]@)">
            <inheritdoc />
        </member>
        <member name="M:PCSC.SCardReader.GetAttrib(PCSC.SCardAttribute,System.Byte[],System.Int32@)">
            <inheritdoc />
        </member>
        <member name="M:PCSC.SCardReader.GetAttrib(System.IntPtr,System.Byte[],System.Int32@)">
            <inheritdoc />
        </member>
        <member name="M:PCSC.SCardReader.SetAttrib(PCSC.SCardAttribute,System.Byte[])">
            <inheritdoc />
        </member>
        <member name="M:PCSC.SCardReader.SetAttrib(System.IntPtr,System.Byte[])">
            <inheritdoc />
        </member>
        <member name="M:PCSC.SCardReader.SetAttrib(PCSC.SCardAttribute,System.Byte[],System.Int32)">
            <inheritdoc />
        </member>
        <member name="M:PCSC.SCardReader.SetAttrib(System.IntPtr,System.Byte[],System.Int32)">
            <inheritdoc />
        </member>
        <member name="M:PCSC.SCardReader.Dispose">
            <inheritdoc />
        </member>
        <member name="M:PCSC.SCardReader.Dispose(System.Boolean)">
            <summary>This will disconnect the reader if it is currently connected using <see cref="F:PCSC.SCardReaderDisposition.Leave" />.</summary>
            <param name="disposing">Ignored. The reader will be disconnected.</param>
        </member>
        <member name="T:PCSC.SCardReaderDisposition">
            <summary>Action to be taken on the reader.</summary>
            <remarks>The disposition action is not currently used in PC/SC Lite.</remarks>
        </member>
        <member name="F:PCSC.SCardReaderDisposition.Leave">
            <summary>Do nothing. (SCARD_LEAVE_CARD)</summary>
        </member>
        <member name="F:PCSC.SCardReaderDisposition.Reset">
            <summary>Reset the card. (SCARD_RESET_CARD)</summary>
        </member>
        <member name="F:PCSC.SCardReaderDisposition.Unpower">
            <summary>Unpower the card. (SCARD_UNPOWER_CARD)</summary>
        </member>
        <member name="F:PCSC.SCardReaderDisposition.Eject">
            <summary>Eject the card. (SCARD_EJECT_CARD)</summary>
        </member>
        <member name="T:PCSC.SCardReaderState">
            <summary>A structures that contains the old and the new Smart Card reader status.</summary>
            <remarks>
                <para>Is used as parameter in <see cref="M:PCSC.ISCardContext.GetStatusChange(System.IntPtr,PCSC.SCardReaderState[])" />.</para>
                <para>The new event state will be contained in <see cref="P:PCSC.SCardReaderState.EventState" />. A status change might be a card insertion or removal event, a change in ATR, etc. To wait for a reader event (reader added or removed) you may use the special reader name "\\?PnP?\Notification". If a reader event occurs the state of this reader will change and the bit <see cref="F:PCSC.SCRState.Changed" /> will be set.</para>
            </remarks>
        </member>
        <member name="M:PCSC.SCardReaderState.Finalize">
            <summary>
            Frees unmanaged resources.
            </summary>
        </member>
        <member name="M:PCSC.SCardReaderState.Dispose">
            <summary>
            Frees unmanaged resources.
            </summary>
        </member>
        <member name="M:PCSC.SCardReaderState.Dispose(System.Boolean)">
            <summary>
            Frees unmanaged resources.
            </summary>
            <param name="disposing">Ignored.</param>
        </member>
        <member name="M:PCSC.SCardReaderState.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:PCSC.SCardReaderState"/> class.
            </summary>
        </member>
        <member name="P:PCSC.SCardReaderState.UserData">
            <summary>
            User defined data.
            </summary>
        </member>
        <member name="P:PCSC.SCardReaderState.UserDataPointer">
            <summary>
            User defined data.
            </summary>
        </member>
        <member name="P:PCSC.SCardReaderState.CurrentState">
            <summary>
            Current state of reader.
            </summary>
        </member>
        <member name="P:PCSC.SCardReaderState.CurrentStateValue">
            <summary>
            Current state of reader.
            </summary>
        </member>
        <member name="P:PCSC.SCardReaderState.EventState">
            <summary>
            Reader state after a state change.
            </summary>
        </member>
        <member name="P:PCSC.SCardReaderState.EventStateValue">
            <summary>
            Reader state after a state change.
            </summary>
        </member>
        <member name="P:PCSC.SCardReaderState.CardChangeEventCnt">
            <summary>
            Number of change events.
            </summary>
        </member>
        <member name="P:PCSC.SCardReaderState.ReaderName">
            <summary>
            The reader's name.
            </summary>
        </member>
        <member name="P:PCSC.SCardReaderState.Atr">
            <summary>
            Answer To Reset (ATR)
            </summary>
        </member>
        <member name="T:PCSC.SCardScope">
            <summary>Scope of the establishment.</summary>
            <remarks>The following scopes are not used on Linux/UNIX machines using the PC/SC Lite daemon:
                <list type="bullet">
                    <item><term><see cref="F:PCSC.SCardScope.User" /></term></item>
                    <item><term><see cref="F:PCSC.SCardScope.Terminal" /></term></item>
                    <item><term><see cref="F:PCSC.SCardScope.Global" /></term></item>
                </list></remarks>
        </member>
        <member name="F:PCSC.SCardScope.User">
            <summary>Scope in user space.</summary>
        </member>
        <member name="F:PCSC.SCardScope.Terminal">
            <summary>Scope in terminal.</summary>
        </member>
        <member name="F:PCSC.SCardScope.System">
            <summary>Scope in system. Service on the local machine.</summary>
        </member>
        <member name="F:PCSC.SCardScope.Global">
            PC/SC Lite specific extensions 
            <summary>Scope is global. </summary>
        </member>
        <member name="T:PCSC.SCardShareMode">
            <summary>Mode of connection type: exclusive or shared.</summary>
            <remarks>
                <see cref="F:PCSC.SCardShareMode.Direct" /> can be used before using <see cref="M:PCSC.ISCardReader.Control(System.IntPtr,System.Byte[],System.Byte[]@)" />  to send control commands to the reader even if a card is not present in the reader. Contrary to Windows winscard behavior, the reader is accessed in shared mode and not exclusive mode. </remarks>
        </member>
        <member name="F:PCSC.SCardShareMode.Exclusive">
            <summary>This application will NOT allow others to share the reader. (SCARD_SHARE_EXCLUSIVE)</summary>
        </member>
        <member name="F:PCSC.SCardShareMode.Shared">
            <summary>This application will allow others to share the reader. (SCARD_SHARE_SHARED)</summary>
        </member>
        <member name="F:PCSC.SCardShareMode.Direct">
            <summary>Direct control of the reader, even without a card. (SCARD_SHARE_DIRECT)</summary>
        </member>
        <member name="T:PCSC.SCardState">
            <summary>State of the smart card in the reader.</summary>
            <remarks>Is a bit mask that represents the current reader status.</remarks>
        </member>
        <member name="F:PCSC.SCardState.Unknown">
            <summary>Unknown status.</summary>
        </member>
        <member name="F:PCSC.SCardState.Absent">
            <summary>There is no card in the reader.</summary>
        </member>
        <member name="F:PCSC.SCardState.Present">
            <summary>There is a card in the reader, but it has not been moved into position for use.</summary>
        </member>
        <member name="F:PCSC.SCardState.Swallowed">
            <summary>There is a card in the reader in position for use. The card is not powered.</summary>
        </member>
        <member name="F:PCSC.SCardState.Powered">
            <summary>Power is being provided to the card, but the reader driver is unaware of the mode of the card.</summary>
        </member>
        <member name="F:PCSC.SCardState.Negotiable">
            <summary>The card has been reset and is awaiting PTS negotiation.</summary>
        </member>
        <member name="F:PCSC.SCardState.Specific">
            <summary>The card has been reset and specific communication protocols have been established.</summary>
        </member>
        <member name="T:PCSC.SCRState">
            <summary>Reader state.</summary>
        </member>
        <member name="F:PCSC.SCRState.Unaware">
            <summary>The application is unaware of the current state, and would like to know. The use of this value results in an immediate return from state transition monitoring services. This is represented by all bits set to zero. (SCARD_STATE_UNAWARE)</summary>
        </member>
        <member name="F:PCSC.SCRState.Ignore">
            <summary>This reader should be ignored. (SCARD_STATE_IGNORE)</summary>
        </member>
        <member name="F:PCSC.SCRState.Changed">
            <summary>There is a difference between the state believed by the application, and the state known by the resource manager. When this bit is set, the application may assume a significant state change has occurred on this reader. (SCARD_STATE_CHANGED)</summary>
        </member>
        <member name="F:PCSC.SCRState.Unknown">
            <summary>The given reader name is not recognized by the resource manager. If this bit is set, then <see cref="F:PCSC.SCRState.Changed" />  and <see cref="F:PCSC.SCRState.Ignore" /> will also be set. (SCARD_STATE_UNKNOWN)</summary>
        </member>
        <member name="F:PCSC.SCRState.Unavailable">
            <summary>The actual state of this reader is not available. If this bit is set, then all the following bits are clear. (SCARD_STATE_UNAVAILABLE)</summary>
        </member>
        <member name="F:PCSC.SCRState.Empty">
            <summary>There is no card in the reader. If this bit is set, all the following bits will be clear. (SCARD_STATE_EMPTY)</summary>
        </member>
        <member name="F:PCSC.SCRState.Present">
            <summary>There is a card in the reader. (SCARD_STATE_PRESENT)</summary>
        </member>
        <member name="F:PCSC.SCRState.AtrMatch">
            <summary>There is a card in the reader with an ATR matching one of the target cards. If this bit is set, <see cref="F:PCSC.SCRState.Present" /> will also be set. This bit is only returned on the SCardLocateCards() function. (SCARD_STATE_ATRMATCH)</summary>
        </member>
        <member name="F:PCSC.SCRState.Exclusive">
            <summary>The card in the reader is allocated for exclusive use by another application. If this bit is set, <see cref="F:PCSC.SCRState.Present" /> will also be set. (SCARD_STATE_EXCLUSIVE)</summary>
        </member>
        <member name="F:PCSC.SCRState.InUse">
            <summary>The card in the reader is in use by one or more other applications, but may be connected to in shared mode. If this bit is set, <see cref="F:PCSC.SCRState.Present" />  will also be set. (SCARD_STATE_INUSE)</summary>
        </member>
        <member name="F:PCSC.SCRState.Mute">
            <summary>There is an unresponsive card in the reader. (SCARD_STATE_MUTE)</summary>
        </member>
        <member name="F:PCSC.SCRState.Unpowered">
            <summary>The card is unpowered. (SCARD_STATE_UNPOWERED)</summary>
        </member>
        <member name="T:PCSC.Utils.SCardHelper">
            <summary>
            Helper class that offers methods to convert various values into strings.
            </summary>
        </member>
        <member name="M:PCSC.Utils.SCardHelper.StringifyError(PCSC.SCardError)">
            <summary>
            Returns a human readable text for the given PC/SC error code.
            </summary>
            <param name="code">Error or return code.</param>
            <returns>A human readable string.</returns>
            <remarks>Warning! This method behaves differently compared to the original PC/SC-Lite pcsc_stringify_error function. Instead of the (const) variable name it returns a short text description.</remarks>
        </member>
        <member name="M:PCSC.Utils.SCardHelper.GetAttrDesc``1(``0)">
            <summary>
            Returns a description string of an enumeration attribute.
            </summary>
            <typeparam name="T">attribute type</typeparam>
            <param name="attr">attribute</param>
            <returns>If available: a description string of the specified attribute. Otherwise null.</returns>
        </member>
    </members>
</doc>
