Readme.txt.in added hints for vpcd on Windows

some details how to get build vpcd on Windows 64 bit
This commit is contained in:
psytester
2014-05-09 21:02:43 +02:00
parent fee02171cb
commit 02f08646f4

View File

@@ -135,13 +135,38 @@ For the Windows integration we extended `Fabio Ottavi's UMDF Driver for a
Virtual Smart Card Reader`_ with a |vpcd| interface. To build the |vpcd| we use Virtual Smart Card Reader`_ with a |vpcd| interface. To build the |vpcd| we use
`Windows Driver Kit 8.1 and Visual Studio 2013`_: `Windows Driver Kit 8.1 and Visual Studio 2013`_:
Hint 1:
With VS2013 and WDK 8.1 no WinXP driver can be build.
To do this for WinXP, an older VS with WDK 7.1.0 is required.
Hint 2:
That UMDF Driver for a Virtual Smart Card Reader is written as Win 32 bit code.
The Win7 source can be compiled as Win7 64 Bit, but C/C++ builder option needs to be changed!
For that go to project properties of "BixVReader" (not for "BixVReader-package"), move to C/C++ settings
and switch off the option "/WX (Treat Linker Warnings as Errors)".
Otherwise some warnings gets escalated to errors and build will fail on 64 bit.
Hint 3:
In configuration manager ensure, that both projects are set to same platform = x64 or Win32, no mix with the other !!!
Any mix will result into device manager error code 31 for that driver
and this error code is NOT related to wrong or missing code signing as given standard answer in internet.
Hint 4:
The Win7 (64 Bit) build does not need to be signed, during installation Windows will prompt a warning, just allow its installation.
In case WDK test signing should be used, simply use VS build-in Driver Signing settings. Context menu for "BixVReader-package" -> properties -> Driver Signing -> Sign Mode = "Test Sign".
Import the WDKTestCert into your windows keystore.
Please read Microsoft "Kernel-Mode Code Signing Walkthrough". It is a very good document for better understanding.
1. In Visual Studio select :menuselection:`File --> Open --> Convert 1. In Visual Studio select :menuselection:`File --> Open --> Convert
Sources/Dirs...` and choose the vpcd's :file:`sources` either in the Sources/Dirs...` and choose the vpcd's :file:`sources` either in the
:file:`WinXP` or :file:`Win7` folder. :file:`WinXP` or :file:`Win7` folder.
2. If you can successfully :guilabel:`Build the solution`, you can find the 2. If you can successfully :guilabel:`Build the solution`, you can find the
install package in :file:`BixVReader-package`. It contains `BixVReader.inf` install package in :file:`BixVReader-package`. It contains `BixVReader.inf`
and the required libraries, especially `BixVReader.dll`. and the required libraries, especially `BixVReader.dll`.
For 32 bit driver the WudfUpdate_01009.dll will be 1795 KB
For 64 bit driver the WudfUpdate_01009.dll will be 2102 KB.
3. Copy :file:`win32\\BixVReader\\BixVReader.ini` into the :envvar:`%SystemRoot%` 3. Copy :file:`win32\\BixVReader\\BixVReader.ini` into the :envvar:`%SystemRoot%`
directory. directory.
@@ -149,7 +174,10 @@ Virtual Smart Card Reader`_ with a |vpcd| interface. To build the |vpcd| we use
4. In a console with administrator rights go to :file:`BixVReader-package` and 4. In a console with administrator rights go to :file:`BixVReader-package` and
execute:: execute::
on 32 bit system with 32 bit driver:
"C:\Program Files\Windows Kits\8.1\Tools\x86\devcon.exe" install BixVReader.inf root\BixVirtualReader "C:\Program Files\Windows Kits\8.1\Tools\x86\devcon.exe" install BixVReader.inf root\BixVirtualReader
on 64 bit system with 64 bit driver:
"C:\Program Files\Windows Kits\8.1\Tools\x64\devcon.exe" install BixVReader.inf root\BixVirtualReader
You can adjust the path to ``devcon.exe`` with your version of the WDK and You can adjust the path to ``devcon.exe`` with your version of the WDK and
your target architecture. your target architecture.
@@ -193,10 +221,9 @@ needs to be started with :option:`--reversed` in this case.
Configuring |vpcd| on Windows Configuring |vpcd| on Windows
================================================================================ ================================================================================
The configuration file from |vpcd| is usually placed into The configuration file `BixVReader.ini` from |vpcd| is usually placed into
:file:`C:\\Windows`. The PC/SC daemon should read it and load the :file:`C:\\Windows` (:envvar:`%SystemRoot%`). The PC/SC daemon should read it and load the
|vpcd| on startup. The Windows Device Manager should list the :guilabel:`Bix |vpcd| on startup. The Windows Device Manager should list the :guilabel:`Bix Virtual Smart Card Reader`.
Virtual Smart Card Reader`.
|vpcd| opens a socket for |vpicc| and waits for incoming |vpcd| opens a socket for |vpicc| and waits for incoming
connections. The port to open should be specified in ``TCP_PORT``: connections. The port to open should be specified in ``TCP_PORT``:
@@ -219,6 +246,9 @@ options of |vpicc|.
On Windows you can start |vpicc| with :command:`python.exe src/vpicc/vicc.in` On Windows you can start |vpicc| with :command:`python.exe src/vpicc/vicc.in`
or :command:`python.exe vicc`. or :command:`python.exe vicc`.
Notice! actually on Windows |vpicc| can not run in mode `-t nPA` due to some missing python binding, refer to |openPACE|.
When |vpcd| and |vpicc| are connected you should be able to access the card When |vpcd| and |vpicc| are connected you should be able to access the card
through the PC/SC API. You can use the :command:`opensc-explorer` or through the PC/SC API. You can use the :command:`opensc-explorer` or
:command:`pcsc_scan` for testing. In @PACKAGE_NAME@'s root directory we also :command:`pcsc_scan` for testing. In @PACKAGE_NAME@'s root directory we also