WinDriver Jungo WinDriver OS 1 2 OS WinDriver OS Windows Linux Solaris VxWorks OS WinDriver ( ) Web http://www.xlsoft.com/jp/products/downloa d/ WinDriver Ring-0 API I/O PCI/ISA USB 1 WinDriver 1. WinDriver WinDriver WinDriver 1 1 OS Windows Linux VxWorks 2 OS DDK 3
4 I/O 5 6 OS 1 4 WinDriver WinDriver OS WinDriver WinDriver DriverWizard DriverWizard Microsoft Visual Studio Borland Builder Linux gmake VenderID 6809 DeviceID 8000 PCI 8 ON 1 OFF 0 LED 1 PCI 8 LED PCI 7 LED 4 1 WinDriver WDxxx.EXE xxx WinDriver C/C++ Visual Basic Delphi 32 Kernel PlugIn DDK 2. WinDriver WinDriver WinDriver PCI Windows PCI 2 DriverWizard Create a new driver project Select Your Device Plag-and-Play Vendor ID 6809 Device ID 8000 2
2 PCI
3 INF 3 INF PCI Plag-and-Play INF DriverWizard 3 Generate.INF file Next NextINF Windows 2000/XP/Server 2003 Automatically Install INF file DriverWizard INF INF 2 Select Your Device
4 PCI 5 Register0 Register1 3
4 DriverWizard Plag-and-Play I/O 4 I/O 1 Registers New 5 6 1 I/O R/W +00h 32 R 7 0 +04h 32 R/W 7 0 LED +08h 32 R W 0 0 (1 ) (1 ) +0Ch 32 R/W 0 (1 ) 5 DriverWizard I/O Register0 PCI 8 ON 1 7 Register1 3 Listen [Listen to Interrupts] 8
6 7 Register0 Register1 3
8 6 DriverWizard Next Build Generate Code Select Code Generation Options C MS Developer Studio 6,5 9(a) Plag-and-Play Power Management KernelPlugIn 9(b) Kernel PlugIn DDK Next DriverWizard C/C++DriverWizard test test_files.txt readme test_diag.c DriverWizard test_lib.c test_diag.c test_lib.h DriverWizard PCI
(a) (b)
(c) 9 DriverWizard 1 DriverWizard API 4 Bar0 Range Register1Read/Write PCI WinDriver / PCI / WinDriver API 2
1 DriverWizard API // : TEST_ReadRegister1() // Register1 // : // htest [in] - TEST_Open() // : // UINT32 TEST_ReadRegister1 (TEST_HANDLE htest) { return TEST_ReadDword(hTEST, (TEST_ADDR) TEST_Register1_SPACE, TEST_Register1_OFFSET); } (a) Register1 // : TEST_WriteRegister1() // Register1 // : // htest [in] - TEST_Open() // data [in] - data [in] // : // void TEST_WriteRegister1 (TEST_HANDLE htest, UINT32 data) { TEST_WriteDword(hTEST, (TEST_ADDR) TEST_Register1_SPACE, TEST_Register1_OFFSET, data); } (b) Register1
2 WinDriver API & WD_Open() WD_Close() WD_Version() WD_License() PCI WD_CardRegister() WD_CardUnregister() WD_CardCleanupSetup() WD_PciScanCards() WD_PciGetCardInfo() WD_PciConfigDump() WD_IsapnpScanCards() WD_IsapnpGetCardInfo() WD_IsapnpConfigDump() PCI I/O WD_Transfer() WD_MultiTransfer() PCI DMA WD_DMALock() WD_DMAUnlock() PCI InterruptThreadEnable() InterruptThreadDisable() : WD_IntEnable() WD_IntDisable() WD_IntCount() WD_IntWait() Plug-and-Play & WD_EventRegister() WD_EventUnregister() WD_EventPull() WD_EventSend() & WD_Debug() WD_DebugAdd() WD_DebugDump() WD_LogStart() WD_LogStop() WD_LogAdd() WD_Sleep() 3. OS OS 2 1 1 WinDriver WinDriver GUI WinDriver windrvr.sys/windrvr.vxd/windrvr.dll/win drvr.o/wdpnp.sys 10 WinDriver MS Developer Studio
10 WinDriver Kernel PlugIn Kernel PlugIn DDK WinDriver Kernel PlugIn Kernel PlugIn I/O PCI I/O WinDriver WD_Transfer() API
WinDriver API API OS API OS OS WinDriver OS Windows 98/Me/NT/2000/XP/Server 2003/CE Linux Solaris VxWorks Windows UNIX WinDriver OS WinDriver ( ) Web http://www.xlsoft.com/jp/products/downloa d/ 30 DriverWizard Linux Solaris VxWorks Windows CE 60 COLUMN WinDriver PCI WinDriver USB1.1/2.0 WinDriver USB MSX 8 MSX ROM Windows PC USB MSXPLAYer Windows MSX WinDriver H8S/2215UF USB MSX DLL WinDriver ROM
Windows 2000 Professional Visual Studio C++6.0 WinDriver WinDriver INF VC++ USB Windows API ReadFile WriteFile 1 OS OS 2 Windows 98/Me/NT/2000/XP/2003 Server DDK Windows CE ETK OS API OS