Win7-64
Win DDK 7
Итак трассировка работает (см. Trace).
делаем примерно такой bat файл для автоматизации всего процесса изменения и переустановки драйвера VirtualSerial (без перезагрузки ПК). Единственно надо ручками в диспетчере устройств предварительно удалять COM порт (с галочкой удалить полностью драйвера)!
echo off
SET name=virtualserialtcp
SET nameP=VirtualSerialTcp
SET catDEVELOPMENT=VIRTUAL-SERIAL-TCP
SET catBATS=C:\DEVELOPMENT\DRIVERS\
SET trace=%catBATS%%catDEVELOPMENT%\trace\
SET bin=C:\WinDDK\7600.16385.1\src\serial\%nameP%\objchk_win7_amd64\amd64\
SET project=C:\WinDDK\7600.16385.1\src\serial\%nameP%\
SET wdf=C:\WinDDK\7600.16385.1\redist\wdf\amd64\
SET type=UMDF\VirtualSerialTcp
SET traceGUID=8EEECFC0-1E84-483C-92E6-7733E5FF6569
SET PATH=%PATH%;C:\WinDDK\7600.16385.1\tools\devcon\amd64;
call C:\WinDDK\7600.16385.1\bin\setenv.bat C:\WinDDK\7600.16385.1\ chk x64 WIN7
rem call:func tracelog -stop %name%
TIMEOUT /T 1
rem call:func devcon /r remove @root\ports\*
rem TIMEOUT /T 2
cd %bin%
call:func del /Q *.*
cd %project%
call:func build -gce
IF NOT EXIST %bin%WdfCoInstaller01009.dll xcopy %wdf%WdfCoInstaller01009.dll %bin%
IF NOT EXIST %bin%WUDFUpdate_01009.dll xcopy %wdf%WUDFUpdate_01009.dll %bin%
IF EXIST %name%.res del %name%.res
IF EXIST %name%.pdb del %name%.pdb
IF EXIST %name%.res (
echo DON'T DELETE .res
pause
exit
)
IF EXIST %name%.pdb (
echo DON'T DELETE PDB
pause
exit
)
cd %bin%
IF NOT EXIST %name%.pdb (
echo %name%.pdb NOT EXIST
pause
exit
)
call:func del *.tmf
call:func tracepdb.exe -f %bin%%name%.pdb -p %bin% -r %bin% -v -c
cd %trace%
call:func IF EXIST %name%.etl del %name%.etl
cd %trace%
:: parameters number >9
SET command=tracelog.exe -start %name% -guid #{%traceGUID%} -f %trace%%name%.etl -level 5 -flags 0xffff -ft 1
echo -------------------------------------------------------
echo %command%
echo -------------------------------------------------------
%command%
IF NOT %ERRORLEVEL% EQU 0 (
echo *********************************************************
echo ERRORLEVEL=%ERRORLEVEL% %command%
echo *********************************************************
pause
exit
)
call:func devcon.exe install %bin%%name%.inf %type%
TIMEOUT /T 5
call:func tracefmt.exe -f %trace%%name%.etl -p %bin% -o %trace%%name%.txt
echo -------------------------------------------------------
echo "C:\Program Files\Notepad++\notepad++.exe" %trace%%name%.txt
echo -------------------------------------------------------
:: C:\Program Files contains space in path
"C:\Program Files\Notepad++\notepad++.exe" %trace%%name%.txt
echo ---------------- open trace txt file ---------------
IF NOT %ERRORLEVEL% EQU 0 (
echo *************** notepad++.exe ***************
pause
exit
)
:func
echo .
echo -------------------------------------------------------
echo %~1
IF NOT [%~2]==[] echo %~2
IF NOT [%~3]==[] echo %~3
IF NOT [%~4]==[] echo %~4
IF NOT [%~5]==[] echo %~5
IF NOT [%~6]==[] echo %~6
IF NOT [%~7]==[] echo %~7
IF NOT [%~8]==[] echo %~8
IF NOT [%~9]==[] echo %~9
echo -------------------------------------------------------
%~1 %~2 %~3 %~4 %~5 %~6 %~7 %~8 %~9
IF NOT %ERRORLEVEL% EQU 0 (
echo *********************************************************
echo ERRORLEVEL=%ERRORLEVEL% %~1 %~2 %~3 %~4 %~5 %~6 %~7 %~8 %~9
echo *********************************************************
pause
exit
)
goto :eof
Скажу честно - у меня все работает как надо. Трассировка идет нормально.
Переходим далее непосредственно к работе с самим COM портом.