WinDriver v10.10 PCI API リファレンス

Size: px
Start display at page:

Download "WinDriver v10.10 PCI API リファレンス"

Transcription

1 JUNGO WinDriver PCI / ISA / PCMCIA / CardBus API i

2 JUNGO LTD. COPYRIGHT Copyright (c) Jungo Ltd. All Rigths Reserved. Jungo Ltd. POB 8493 Netanya Zip Israel Phone (USA) (WorldWide) Fax (USA) (WorldWide) Jungo Ltd. WinDriver Jungo Windows Win32 Windows 98 Windows Me Windows CE Windows NT Windows 2000 Windows XP Windows Server 2003 Windows Server 2008 Windows Vista Windows F TEL FAX xlsoftkk@xlsoft.com Home Page: Rev /2009 ii

3 A API... 1 A.1 WDC...1 A.1.1 WD_DriverName()...2 A.2 WDC API...3 A A.2.2 WDC_DriverOpen()...8 A.2.3 WDC_DriverClose()...9 A.2.4 WDC_PciScanDevices()...9 A.2.5 WDC_PciScanDevicesByTopology()...10 A.2.6 WDC_PcmciaScanDevices()...11 A.2.7 WDC_PciGetDeviceInfo()...12 A.2.8 WDC_PcmciaGetDeviceInfo()...13 A.2.9 WDC_PciDeviceOpen()...14 A.2.10 WDC_PcmciaDeviceOpen()...16 A.2.11 WDC_IsaDeviceOpen()...19 A.2.12 WDC_PciDeviceClose()...21 A.2.13 WDC_PcmciaDeviceClose()...22 A.2.14 WDC_IsaDeviceClose()...22 A.2.15 WDC_CardCleanupSetup()...23 A.2.16 WDC_KernelPlugInOpen()...24 A.2.17 WDC_CallKerPlug()...25 A.2.18 WDC_ReadMemXXX()...26 A.2.19 WDC_WriteMemXXX()...27 A.2.20 WDC_ReadAddrXXX()...27 A.2.21 WDC_WriteAddrXXX()...28 A.2.22 WDC_ReadAddrBlock()...29 A.2.23 WDC_WriteAddrBlock()...30 A.2.24 WDC_MultiTransfer()...32 A.2.25 WDC_AddrSpaceIsActive()...32 A.2.26 WDC_PciReadCfgBySlot()...33 A.2.27 WDC_PciWriteCfgBySlot()...34 A.2.28 WDC_PciReadCfg()...35 A.2.29 WDC_PciWriteCfg()...36 A.2.30 WDC_PciReadCfgBySlotXXX()...37 A.2.31 WDC_PciWriteCfgBySlotXXX()...38 A.2.32 WDC_PciReadCfgXXX()...39 A.2.33 WDC_PciWriteCfgXXX()...40 iii

4 WINDRIVER PCI A.2.34 WDC_PcmciaReadAttribSpace()...41 A.2.35 WDC_PcmciaWriteAttribSpace()...41 A.2.36 WDC_PcmciaSetWindow()...42 A.2.37 WDC_PcmciaSetVpp()...43 A.2.38 WDC_DMAContigBufLock()...44 A.2.39 WDC_DMASGBufLock()...45 A.2.40 WDC_DMABufUnlock()...47 A.2.41 WDC_DMASyncCpu()...47 A.2.42 WDC_DMASyncIo()...48 A.2.43 WDC_SharedBufferAlloc()...49 A.2.44 WDC_SharedBufferFree()...50 A.2.45 WDC_IntEnable()...51 A.2.46 WDC_IntDisable()...54 A.2.47 WDC_IntIsEnabled()...54 A.2.48 WDC_EventRegister()...55 A.2.49 WDC_EventUnregister()...57 A.2.50 WDC_EventIsRegistered()...57 A.2.51 WDC_SetDebugOptions()...58 A.2.52 WDC_Err()...59 A.2.53 WDC_Trace()...60 A.2.54 WDC_GetWDHandle()...60 A.2.55 WDC_GetDevContext()...61 A.2.56 WDC_GetBusType()...61 A.2.57 WDC_Sleep()...62 A.2.58 WDC_Version()...63 A.3 WDC API...63 A.3.1 WDC_ID_U...63 A.3.2 WDC_ADDR_DESC...64 A.3.3 WDC_DEVICE...64 A.3.4 PWDC_DEVICE...65 A.3.5 WDC_MEM_DIRECT_ADDR...65 A.3.6 WDC_ADDR_IS_MEM...66 A.3.7 A.3.8 A.3.9 WDC_GET_ADDR_DESC...66 WDC_GET_ENABLED_INT_TYPE...67 WDC_GET_INT_OPTIONS...68 A.3.10 WDC_INT_IS_MSI...69 A.3.11 WDC_GET_ENABLED_INT_LAST_MSG...69 A.3.12 WDC_IS_KP...70 A.4 WD_xxx...70 A.4.1 WD_BUS_TYP...70 iv

5 A.4.2 A.4.3 A.4.4 A.4.5 A.4.6 A.4.7 A.4.8 A.4.9 ITEM_TYPE...71 WD_PCMCIA_ACC_SPEED...71 WD_PCMCIA_ACC_WIDTH...71 WD_PCMCIA_VPP...71 WD_PCI_ID...72 WD_PCMCIA_ID...72 WD_PCI_SLOT...72 WD_PCMCIA_SLOT...72 A.4.10 WD_ITEMS...73 A.4.11 A.4.12 A.4.13 A.4.14 A.4.15 WD_CARD...76 WD_PCI_CARD_INFO...76 WD_PCMCIA_CARD_INFO...76 WD_DMA...77 WD_TRANSFER...79 A.5 Kernel PlugIn...80 A.5.1 KP_Init()...80 A.5.2 KP_Open()...82 A.5.3 KP_Close()...83 A.5.4 KP_Call()...84 A.5.5 KP_Event()...85 A.5.6 KP_IntEnable()...86 A.5.7 KP_IntDisable()...88 A.5.8 KP_IntAtIrql()...89 A.5.9 KP_IntAtDpc()...90 A.5.10 KP_IntAtIrqlMSI()...91 A.5.11 KP_IntAtDpcMSI()...93 A.5.12 COPY_TO_USER_OR_KERNEL COPY_FROM_USER_OR_KERNEL...94 A.5.13 Kernel PlugIn API...95 A.6 Kernel PlugIn A.6.1 WD_KERNEL_PLUGIN A.6.2 WD_INTERRUPT A.6.3 WD_KERNEL_PLUGIN_CALL A.6.4 KP_INIT A.6.5 KP_OPEN_CALL A A.7.1 Stat2Str() A.7.2 get_os_type() A.7.3 ThreadStart() A.7.4 ThreadWait() v

6 WINDRIVER PCI A.7.5 OsEventCreate() A.7.6 OsEventClose() A.7.7 OsEventWait() A.7.8 OsEventSignal() A.7.9 OsEventReset() A.7.10 OsMutexCreate() A.7.11 OsMutexClose() A.7.12 OsMutexLock() A.7.13 OsMutexUnlock() A.7.14 PrintDbgMessage() A.7.15 WD_LogStart() A.7.16 WD_LogStop() A.7.17 WD_LogAdd() A.8 WinDriver A A.8.2 WinDriver B C (Evaluation Version) C.1 WinDriver Windows C.2 WinDriver Windows CE C.3 WinDriver Linux D WinDriver E F vi

7 A API A API C WinDriver.NET Visual Basic Delphi C WinDriver.NET VB Delphi A.1 WDC WinDriver WDC API WinDriver PCI / ISA / PCMCIA / CardBus WD_xxx API [A.4] WDC PCI / ISA / PCMCIA / CardBus WinDriver WD_xxx PCI / PCMCIA / ISA WinDriver API WDC API WDC API (WinDriver Kernel PlugIn ) DriverWizard PCI / PCMCIA / ISA PLX pci_diag Kernel PlugIn kp_pci pcmcia_diag pci_dump WDC API WDC API wdapi1010 DLL / WinDriver\redist\wdapi1010.dll (Windows 2000 / XP / Server 2003 / Server 2008 / Vista / 7 Windows CE) / WinDriver\redist\WINCE\<TARGET_CPU>\wdapi1010.dll (Windows CE) / WinDriver/lib/libwdapi1010.so (Linux) WDC API WinDriver/src/wdapi WDC wdc_lib.h wdc_defs.h ( WinDriver/includes ) wdc_lib.h wdc_defs.h WDC API () WDC API wdc_lib.h WinDriver PCI / PCMCIA / ISA DriverWizard WDC API wdc_lib.h API wdc_defs.h API WDC API [A.2] API [A.3] 1

8 WINDRIVER PCI WinDriver PCI API CardBus PCI CardBus PCMCIA API (WDC WD_xxx WinDriver API ) Windows 2000 / XP / Server 2003 / Server 2008 / Vista / 7 A.1.1 WD_DriverName() WinDriver : windrvr6 DriverWizard WinDriver WinDriver (WD_Open() / WDC_DriverOpen() / WDC_xxxDeviceOpen() ) 1 DriverWizard WinDriver (windrvr6) Windows Linux WinDriver 15.2 WinDriver (windrvr6.sys/.o/.ko) WD_DriverName() WD_DriverName() WD_DRIVER_NAME_CHANGE ( : Visual Studio gcc -DWD_DRIVER_NAME_CHANGE) DriverWizard Windows Linux WinDriver makefile const char* DLLCALLCONV WD_DriverName(const char* sname); sname const char* sname WinDriver : 2

9 A API windrvr6.sys windrvr6.o windrvr6 ( : 2 ) NULL WinDriver 15.2 WinDriver Windows Linux Windows CE WD_DriverName() WinDriver (windrvr6) A.2 WDC API WinDriver/include/wdc_lib.h WDC API A.2.1 A WDC_DEVICE_HANDLE WDC [A.3.3] typedef void * WDC_DEVICE_HANDLE; A WDC_DRV_OPEN_OPTIONS typedef DWORD WDC_DRV_OPEN_OPTIONS; WDC (WDC_DriverOpen() [A.2.2] ) # WDC_DRV_OPEN_CHECK_VER WDC_DRV_OPEN_REG_LIC WinDriver WinDriver WinDriver WDC_DriverOpen() [A.2.2] WDC # WDC_DRV_OPEN_BASIC WinDriver WDC WDC_Driveropen() [A.2.2] 3

10 WINDRIVER PCI : (0) (<=> ) WDC WDC_DRV_OPEN_KP WDC_DRV_OPEN_ALL WDC_DRV_OPEN_DEFAULT Kernel PlugIn WDC_DriverOpen() [A.2.2] Kernel PlugIn WDC WDC_DRV_OPEN_BASIC WDC (WDC_DRV_OPEN_CHECK_VER WDC_DRV_OPEN_REG_REG_LIC) WinDriver WDC_DriverOpen() [A.2.2] WDC_DRV_OPEN_BASIC WDC : WDC_DRV_OPEN_ALL Kernel PlugIn : WDC_DRV_OPEN_KP A WDC_DIRECTION / WDC_READ WDC_WRITE WDC_READ_WRITE ( / ) WinDriver DriverWizard A WDC_ADDR_MODE I/O / / I/O / ( ) / WDC_MODE_8 8 (1 ) WDC_MODE_16 16 (2 ) WDC_MODE_32 32 (4 ) WDC_MODE_64 64 (8 ) 4

11 A API A WDC_ADDR_RW_OPTIONS I/O / / ( ) WDC_ADDR_RW_DEFAULT : (0) (<=> / ) / WDC_ReadAddr8/16/32/64() [A.2.20] WDC_WriteAddr8/16/32/64() [A.2.21] WDC_ADDR_RW_NO_AUTOINC / ( ( ) ) I/O / A WDC_ADDR_SIZE typedef DWORD WDC_ADDR_SIZE; I/O / # WDC_SIZE_8 8 (1 ) WDC_SIZE_16 16 (2 ) WDC_SIZE_32 32 (4 ) WDC_SIZE_64 64 (8 ) A WDC_SLEEP_OPTIONS typedef DWORD WDC_SLEEP_OPTIONS; WDC_Sleep() [A.2.55] # WDC_SLEEP_BUSY WDC_SLEEP_NON_BUSY CPU ( ) CPU ( ) : 17,000 A WDC_DBG_OPTIONS typedef DWORD WDC_DBG_OPTIONS; 5

12 WINDRIVER PCI WDC_SetDebugOptions() [A.2.49] WDC WDC # WDC_DBG_OUT_DBM WDC WDC_DBG_OUT_FILE WDC WDC_SetDebugOptions() [A.2.49] sdbgfile stderr Kernel PlugIn ( : WDC ) # WDC_DBG_LEVEL_ERR WDC_DBG_LEVEL_TRACE WDC_DBG_NONE WDC WDC WDC WDC WDC_SetDebugOptions() [A.2.49] Kernel PlugIn # WDC_DBG_DEFAULT WDC_DBG_DBM_ERR WDC_DBG_DBM_TRACE WDC_DBG_FULL WDC_DBG_OUT_DBM WDC_DBG_LEVEL_TRACE : WDC WDC_DBG_OUT_DBM WDC_DBG_LEVEL_ERR : WDC WDC_DBG_OUT_DBM WDC_DBG_LEVEL_TRACE : WDC WDC : WDC_DBG_OUT_DBM WDC_DBG_OUT_FILE WDC_DBG_LEVEL_TRACE : (: stderr) WDC WDC Kernel PlugIn WDC_DBG_OUT_DBM WDC_DBG_LEVEL_TRACE : WDC 6

13 A API # WDC_DBG_FILE_ERR WDC_DBG_FILE_TRACE WDC_DBG_DBM_FILE_ERR WDC_DBG_DBM_FILE_TRACE WDC_DBG_OUT_FILE WDC_DBG_LEVEL_ERR : WDC ( : stderr) WDC_DBG_OUT_FILE WDC_DBG_LEVEL_TRACE : WDC (: stderr) WDC_DBG_OUT_DBM WDC_DBG_OUT_FILE WDC_DBG_LEVEL_ERR : WDC (: stderr) WDC_DBG_OUT_DBM WDC_DBG_OUT_FILE WDC_DBG_LEVEL_TRACE : WDC (: stderr) A WDC_SLOT_U WDC PCI / PCMCIA pcislot WD_PCI_SLOT PCI [A.4.8] pcmciaslot WD_PCMCIA_SLOT PCMCIA [A.4.9] A WDC_PCI_SCAN_RESULT PCI (WDC_PciScanDevices() [A.2.4] ) dwnumdevices DWORD ( ID) PCI deviceid deviceslot WD_PCI_ID[WD_PCI_CARDS] WD_PCI_SLOT[WD_PCI_CARDS] PCI ID [A.4.6] PCI [A.4.8] A WDC_PCMCIA_SCAN_RESULT PCMCIA (WDC_PcmciaScanDevices() [A.2.6] ) dwnumdevices DWORD ( ID) PCMCIA 7

14 WINDRIVER PCI deviceid deviceslot WD_PCMCIA_ID[WD_PCMCIA_CARDS] WD_PCMCIA_SLOT[WD_PCMCIA_CARDS] PCIMCIA ID [A.4.7] PCMCIA [A.4.9] A.2.2 WDC_DriverOpen() WinDriver WDC WDC API DWORD DLLCALLCONV WDC_DriverOpen( WDC_DRV_OPEN_OPTIONS openoptions, const CHAR *slicense); openoptions WDC_DRV_OPEN_OPTIONS slicense const CHAR* openoptions [A.2.1.2] slicense WinDriver openoptions WDC_DRV_OPEN_REG_LIC [A.2.1.2] NULL WinDriver WinDriver NULL WinDriver WinDriver WD_STATUS_SUCCESS (0) [A.8] 8

15 A API A.2.3 WDC_DriverClose() ( WDC_DriverOpen() [A.2.2] ) WDC WinDriver WDC WDC_DriverOpen() WDC WDC_DriverClose() DWORD DLLCALLCONV WDC_DriverClose(void); WD_STATUS_SUCCESS (0) [A.8] A.2.4 WDC_PciScanDevices() ID PCI WDC_PciScanDevicesByTopology() PCI DWORD DLLCALLCONV WDC_PciScanDevices( DWORD dwvendorid, DWORD dwdeviceid, WDC_PCI_SCAN_RESULT *ppciscanresult); dwvendorid DWORD dwdeviceid DWORD ppciscanresult WDC_PCI_SCAN_RESULT* dwvendorid dwdeviceid ID (16 ) (0) ID ID (16 ) (0) ID 9

16 WINDRIVER PCI ppciscanresult PCI [A ] WD_STATUS_SUCCESS (0) [A.8] ID (0) PCI A.2.5 WDC_PciScanDevicesByTopology() ID PCI WDC_PciScanDevicesByTopology() WDC_PciScanDevices() PCI WDC_PciScanDevices() WDC_PciScanDevicesByTopology() DWORD DLLCALLCONV WDC_PciScanDevicesByTopology( DWORD dwvendorid, DWORD dwdeviceid, WDC_PCI_SCAN_RESULT *ppciscanresult); dwvendorid DWORD dwdeviceid DWORD ppciscanresult WDC_PCI_SCAN_RESULT* dwvendorid dwdeviceid ID (16 ) (0) ID ID (16 ) (0) ID 10

17 A API ppciscanresult PCI [A ] WD_STATUS_SUCCESS (0) [A.8] ID (0) PCI A.2.6 WDC_PcmciaScanDevices() ID PCMCIA DWORD DLLCALLCONV WDC_PcmciaScanDevices( WORD wmanufacturerid, WORD wdeviceid, WDC_PCMCIA_SCAN_RESULT *ppcmciascanresult); wmanufacturerid WORD wdeviceid WORD ppcmciascanresult WDC_PCMCIA_SCAN_RESULT* wmanufacturerid wdeviceid ppcmciascanresult ID (16 ) (0) ID ID (16 ) (0) ID PCMCIA [A ] 11

18 WINDRIVER PCI WD_STATUS_SUCCESS (0) [A.8] ID (0) PCI A.2.7 WDC_PciGetDeviceInfo() PCI ( I/O ) DWORD DLLCALLCONV WDC_PciGetDeviceInfo( WD_PCI_CARD_INFO *pdeviceinfo); pdeviceinfo WD_PCI_CARD_INFO* / pcislot WD_PCI_SLOT Card WD_CARD pdeviceinfo PCI [A.4.11] WD_STATUS_SUCCESS (0) [A.8] Plug-and-Play PCI : Windows WinDriver INF (WinDriver INF WinDriver 14.4 ) (IRQ) Plug-and-Play IRQ IRQ 12

19 A API A.2.8 WDC_PcmciaGetDeviceInfo() PCMCIA ( I/O ) DWORD DLLCALLCONV WDC_PcmciaGetDeviceInfo( WD_PCMCIA_CARD_INFO *pdeviceinfo); pdeviceinfo WD_PCMCIA_CARD_INFO* / pcmciaslot WD_PCMCIA_SLOT Card WD_CARD cversion CHAR cmanufacturer CHAR [WD_PCMCIA_ MANUFACTURER_LEN] cproductname CHAR [WD_PCMCIA_ PRODUCTNAME_LEN] wmanufacturerid WORD wcardid WORD wfuncid WORD pdeviceinfo PCMCIA [A.4.12] WD_STATUS_SUCCESS (0) [A.8] Plug-and-Play PCMCIA : Windows WinDriver INF (WinDriver INF WinDriver 14.4 ) (IRQ) Plug-and-Play IRQ IRQ 13

20 WINDRIVER PCI A.2.9 WDC_PciDeviceOpen() WDC PCI WinDriver I/O (IRQ) Kernel PlugIn DWORD DLLCALLCONV WDC_PciDeviceOpen( WDC_DEVICE_HANDLE *phdev, const WD_PCI_CARD_INFO *pdeviceinfo, const PVOID pdevctx, PVOID reserved, const CHAR *pckpdrivername, PVOID pkpopendata); phdev WDC_DEVICE_HANDLE* pdeviceinfo const WD_PCI_CARD_INFO* pcislot WD_PCI_SLOT Card WD_CARD dwitems DWORD Item WD_ITEMS[WD_CARD_ITEMS] item DWORD fnotsharable DWORD I union Mem struct dwphysicaladdr DWORD dwbytes DWORD dwtransaddr DWORD N/A dwuserdirectaddr DWORD N/A 14

21 A API dwcpuphysicaladdr DWORD N/A dwbar DWORD IO struct dwaddr DWORD dwbytes DWORD dwbar DWORD Int struct dwinterrupt DWORD dwoptions DWORD hinterrupt DWORD N/A Bus struct dwbustype WD_BUS_TYPE dwbusnum DWORD dwslotfunc DWORD Val struct N/A pdevctx const PVOID reserved PVOID pckpdrivername const CHAR* pkpopendata PVOID phdev pdeviceinfo pdevctx Reserved pckpdrivername pkpopendata WDC PCI [A.4.11] Reserved for future use () Kernel PlugIn Kernel PlugIn NULL WD_KernelPlugInOpen() Kernel PlugIn Kernel PlugIn NULL 15

22 WINDRIVER PCI WD_STATUS_SUCCESS (0) [A.8] WDC_PciGetDeviceInfo() [A.2.7] (pdeviceinfo) WDC_PciDeviceOpen() dwoptions (pdeviceinfo- >Card.Item[i].dwOptions) WD_ITEM_DO_NOT_MAP_KERNEL WD_ITEM_DO_NOT_MAP_KERNEL : ( WDC_DEVICE [A.3.3] paddrdesc[i].kptaddr ) WinDriver API Kernel PlugIn A.2.10 WDC_PcmciaDeviceOpen() WDC PCMCIA WinDriver I/O (IRQ) Kernel PlugIn DWORD DLLCALLCONV WDC_PcmciaDeviceOpen( WDC_DEVICE_HANDLE *phdev, const WD_PCMCIA_CARD_INFO *pdeviceinfo, const PVOID pdevctx, PVOID reserved, const CHAR *pckpdrivername, PVOID pkpopendata); 16

23 A API phdev WDC_DEVICE_HANDLE* pdeviceinfo const WD_PCMCIA_CARD_INFO* pcmciaslot WD_PCMCIA_SLOT Card WD_CARD dwitems DWORD Item WD_ITEMS[WD_CARD_ITEMS] item DWORD fnotsharable DWORD I union Mem struct dwphysicaladdr DWORD dwbytes DWORD dwtransaddr DWORD N/A dwuserdirectaddr DWORD N/A dwcpuphysicaladdr DWORD N/A dwbar DWORD IO struct dwaddr DWORD dwbytes DWORD dwbar DWORD Int struct N/A dwinterrupt DWORD dwoptions DWORD hinterrupt DWORD N/A Bus struct dwbustype WD_BUS_TYPE dwbusnum DWORD dwslotfunc DWORD Val struct N/A cversion CHAR cmanufacturer CHAR [WD_PCMCIA_ MANUFACTURER_LEN] cproductname CHAR [WD_PCMCIA_ 17

24 WINDRIVER PCI PRODUCTNAME_LEN] wmanufacturerid WORD wcardid WORD wfuncid WORD pdevctx const PVOID reserved PVOID pckpdrivername const CHAR* pkpopendata PVOID phdev pdeviceinfo pdevctx reserved pckpdrivername pkpopendata WDC PCMCIA [A.4.12] Reserved for future use () Kernel PlugIn Kernel PlugIn NULL WD_KernelPlugInOpen() Kernel PlugIn Kernel PlugIn NULL WD_STATUS_SUCCESS (0) [A.8] 18 WDC_PcmciaGetDeviceInfo() [A.2.8] (pdeviceinfo) WDC_PciDeviceOpen() dwoptions (pdeviceinfo->card.item[i].dwoptions) WD_ITEM_DO_NOT_MAP_KERNEL WD_ITEM_DO_NOT_MAP_KERNEL : ( WDC_DEVICE [A.3.3] paddrdesc[i].kptaddr ) WinDriver

25 A API API Kernel PlugIn A.2.11 WDC_IsaDeviceOpen() WDC ISA WinDriver I/O (IRQ) Kernel PlugIn DWORD DLLCALLCONV WDC_IsaDeviceOpen( WDC_DEVICE_HANDLE *phdev, const WD_CARD *pdeviceinfo, const PVOID pdevctx, PVOID reserved, const CHAR *pckpdrivername, PVOID pkpopendata); phdev WDC_DEVICE_HANDLE* pdeviceinfo const WD_CARD* dwitems DWORD Item WD_ITEMS[WD_CARD_ITEMS] item DWORD fnotsharable DWORD dwoptions DWORD I union Mem struct dwphysicaladdr DWORD dwbytes DWORD 19

26 WINDRIVER PCI dwtransaddr DWORD N/A dwuserdirectaddr DWORD N/A dwcpuphysicaladdr DWORD N/A dwbar DWORD IO struct dwaddr DWORD dwbytes DWORD dwbar DWORD Int struct dwinterrupt DWORD dwoptions DWORD hinterrupt DWORD N/A Bus struct dwbustype WD_BUS_TYPE dwbusnum DWORD dwslotfunc DWORD Val struct N/A pdevctx const PVOID reserved PVOID N/A pckpdrivername const CHAR* pkpopendata PVOID phdev pdeviceinfo pdevctx reserved pckpdrivername pkpopendata WDC [A.4.10] Reserved for future use () Kernel PlugIn Kernel PlugIn NULL WD_KernelPlugInOpen() Kernel PlugIn Kernel PlugIn NULL 20

27 A API WD_STATUS_SUCCESS (0) [A.8] WD_ITEMS WD_ITEM_OPTIONS (pdeviceinfo- >Card.Item[i].dwOptions) : ( WDC_DEVICE [A.3.3] paddrdesc[i].kptaddr ) WinDriver API Kernel PlugIn A.2.12 WDC_PciDeviceClose() WDC PCI DWORD DLLCALLCONV WDC_PciDeviceClose(WDC_DEVICE_HANDLE hdev); hdev WDC_DEVICE_HANDLE hdev WDC_PciDeviceOpen() [A.2.9] WDC PCI WD_STATUS_SUCCESS (0) [A.8] 21

28 WINDRIVER PCI A.2.13 WDC_PcmciaDeviceClose() WDC PCMCIA DWORD DLLCALLCONV WDC_PcmciaDeviceClose(WDC_DEVICE_HANDLE hdev); hdev WDC_DEVICE_HANDLE hdev WDC_PcmciaDeviceOpen() [A.2.10] WDC PCMCIA WD_STATUS_SUCCESS (0) [A.8] A.2.14 WDC_IsaDeviceClose() WDC ISA DWORD DLLCALLCONV WDC_IsaDeviceClose(WDC_DEVICE_HANDLE hdev); hdev WDC_DEVICE_HANDLE 22

29 A API hdev WDC_IsaDeviceOpen() [A.2.11] WDC ISA WD_STATUS_SUCCESS (0) [A.8] A.2.15 WDC_CardCleanupSetup() bforcecleanup TRUE () DWORD WDC_CardCleanupSetup( WDC_DEVICE_HANDLE hdev, WD_TRANSFER *Cmd, DWORD dwcmds, BOOL bforcecleanup); hdev WDC_DEVICE_HANDLE Cmd WD_TRANSFER* dwcmds DWORD bforcecleanup BOOL hdev WDC_xxxDeviceOpen() (PCI [A.2.9] / PCMCIA [A.2.10] / ISA [A.2.11]) WDC 23

30 WINDRIVER PCI Cmd dwcmds bforcecleanup [A.4.14] Cmd FALSE (Cmd) WDC_xxxDeviceClose() (PCI [A.2.12] / PCMCIA [A.2.13] / ISA [A.2.14]) TRUE 2 WD_xxxDeviceClose() WD_STATUS_SUCCESS (0) [A.8] A.2.16 WDC_KernelPlugInOpen() Kernel PlugIn DWORD DLLCALLCONV WDC_KernelPlugInOpen( WDC_DEVICE_HANDLE hdev, const CHAR *pckpdrivername, PVOID pkpopendata); HDev WDC_DEVICE_HANDLE / pckpdrivername const CHAR* pkpopendata PVOID hdev WDC_xxxDeviceOpen() (PCI [A.2.9] / PCMCIA [A.2.10] / ISA [A.2.11]) WDC pckpdrivername pkpopendata Kernel PlugIn WD_KernelPlugInOpen() Kernel PlugIn 24

31 A API WD_STATUS_SUCCESS (0) [A.8] WDC_xxxDeviceOpen() (PCI [A.2.9] / PCMCIA [A.2.10] / ISA [A.2.11]) Kernel PlugIn.NET Kernel PlugIn WinDriver Kernel PlugIn ( : phdev Kernel PlugIn pkpopendata ).NET Kernel PlugIn A.2.17 WDC_CallKerPlug() Kernel PlugIn ID Kernel PlugIn KP_Call() [A.5.4] ID Kernel PlugIn DWORD DLLCALLCONV WDC_CallKerPlug( WDC_DEVICE_HANDLE hdev, DWORD dwmsg, PVOID pdata, PDWORD pdwresult); hdev WDC_DEVICE_HANDLE dwmsg DWORD pdata PVOID / pdwresult pdwresult Hdev WDC_xxxDeviceOpen() (PCI [A.2.9] / PCMCIA [A.2.10] / ISA [A.2.11]) WDC DwMsg pdata Kernel PlugIn (KP_Call() [A.5.4]) ID Kernel PlugIn 25

32 WINDRIVER PCI pdwresult Kernel PlugIn (KP_Call()) WD_STATUS_SUCCESS (0) [A.8] A.2.18 WDC_ReadMemXXX() WDC_ReadMem8/16/32/64() 1 (8 ) / 2 (16 ) / 4 (32 ) / 8 (64 ) ( / ) BYTE WDC_ReadMem8(addr, off); WORD WDC_ReadMem16(addr, off); UINT32 WDC_ReadMem32(addr, off); UINT64 WDC_ReadMem64(addr, off); : WDC_ReadMemXXX API addr DWORD off DWORD addr off (addr) 26

33 A API A.2.19 WDC_WriteMemXXX() WDC_WriteMem8/16/32/64() 1 (8 ) / 2 (16 ) / 4 (32 ) / 8 (64 ) ( / ) void WDC_WriteMem8(addr, off, val); void WDC_WriteMem16(addr, off, val); void WDC_WriteMem32(addr, off, val); void WDC_WriteMem64(addr, off, val); : WDC_WriteMemXXX API Addr DWORD Off DWORD Val BYTE / WORD / UINT32 / UINT64 addr off val (addr) A.2.20 WDC_ReadAddrXXX() WDC_ReadAddr8/16/32/64() 1 (8 ) / 2 (16 ) / 4 (32 ) / 8 (64 ) I/O DWORD DLLCALLCONV WDC_ReadAddr8(WDC_DEVICE_HANDLE hdev, DWORD dwaddrspace, KPTR dwoffset, BYTE *val); 27

34 WINDRIVER PCI DWORD DLLCALLCONV WDC_ReadAddr16(WDC_DEVICE_HANDLE hdev, DWORD dwaddrspace, KPTR dwoffset, WORD *val); DWORD DLLCALLCONV WDC_ReadAddr32(WDC_DEVICE_HANDLE hdev, DWORD dwaddrspace, KPTR dwoffset, UINT32 *val); DWORD DLLCALLCONV WDC_ReadAddr64(WDC_DEVICE_HANDLE hdev, DWORD dwaddrspace, KPTR dwoffset, UINT64 *val); hdev WDC_DEVICE_HANDLE dwaddrspace DWORD dwoffset KPTR val BYTE* / WORD* / UINT32* / UINT64* hdev WDC_xxxDeviceOpen() (PCI [A.2.9] / PCMCIA [A.2.10] / ISA [A.2.11]) WDC dwaddrspace dwoffset val I/O (dwaddrspace) WD_STATUS_SUCCESS (0) [A.8] A.2.21 WDC_WriteAddrXXX() WDC_WriteAddr8/16/32/64() 1 (8 ) / 2 (16 ) / 4 (32 ) / 8 (64 ) I/O DWORD DLLCALLCONV WDC_WriteAddr8(WDC_DEVICE_HANDLE hdev, DWORD dwaddrspace, KPTR dwoffset, BYTE val) 28

35 A API DWORD DLLCALLCONV WDC_WriteAddr16(WDC_DEVICE_HANDLE hdev, DWORD dwaddrspace, KPTR dwoffset, WORD val); DWORD DLLCALLCONV WDC_WriteAddr32(WDC_DEVICE_HANDLE hdev, DWORD dwaddrspace, KPTR dwoffset, UINT32 val); DWORD DLLCALLCONV WDC_WriteAddr64(WDC_DEVICE_HANDLE hdev, DWORD dwaddrspace, KPTR dwoffset, UINT64 val); hdev WDC_DEVICE_HANDLE dwaddrspace DWORD dwoffset KPTR val BYTE / WORD / UINT32 / UINT64 hdev WDC_xxxDeviceOpen() (PCI [A.2.9] / PCMCIA [A.2.10] / ISA [A.2.11]) WDC dwaddrspace dwoffset Val I/O (dwaddrspace) WD_STATUS_SUCCESS (0) [A.8] A.2.22 WDC_ReadAddrBlock() DWORD DLLCALLCONV WDC_ReadAddrBlock( WDC_DEVICE_HANDLE hdev, DWORD dwaddrspace, KPTR dwoffset, DWORD dwbytes, 29

36 WINDRIVER PCI PVOID pdata, WDC_ADDR_MODE mode, WDC_ADDR_RW_OPTIONS options); hdev WDC_DEVICE_HANDLE dwaddrspace DWORD dwoffset KPTR dwbytes DWORD pdata PVOID mode WDC_ADDR_MODE options WDC_ADDR_RW_OPTIONS hdev WDC_xxxDeviceOpen() (PCI [A.2.9] / PCMCIA [A.2.10] / ISA [A.2.11]) WDC dwaddrspace dwoffset dwbytes pdata mode options I/O (dwaddrspace) (WDC_ADDR_MODE [A.2.1.4] ) (WDC_ADDR_RW_OPTIONS [A.2.1.5] ) WDC_RW_BLOCK WD_STATUS_SUCCESS (0) [A.8] A.2.23 WDC_WriteAddrBlock() DWORD DLLCALLCONV WDC_WriteAddrBlock( 30

37 A API WDC_DEVICE_HANDLE hdev, DWORD dwaddrspace, KPTR dwoffset, DWORD dwbytes, PVOID pdata, WDC_ADDR_MODE mode, WDC_ADDR_RW_OPTIONS options); hdev WDC_DEVICE_HANDLE dwaddrspace DWORD dwoffset KPTR dwbytes DWORD pdata PVOID mode WDC_ADDR_MODE options WDC_ADDR_RW_OPTIONS hdev WDC_xxxDeviceOpen() (PCI [A.2.9] / PCMCIA [A.2.10] / ISA [A.2.11]) WDC dwaddrspace dwoffset dwbytes pdata mode options I/O (dwaddrspace) (WDC_ADDR_MODE [A.2.1.4] ) (WDC_ADDR_RW_OPTIONS [A.2.1.5] ) WDC_RW_BLOCK WD_STATUS_SUCCESS (0) [A.8] 31

38 WINDRIVER PCI A.2.24 WDC_MultiTransfer() / I/O / DWORD DLLCALLCONV WDC_MultiTransfer( WD_TRANSFER *ptrans, DWORD dwnumtrans); ptrans WD_TRANSFER* dwnumtrans DWORD ptrans dwnumtrans [A.4.14] ptrans WD_STATUS_SUCCESS (0) [A.8] / WD_MultiTransfer() WinDriver (I/O ) / / ( I/O ) [A.3.3] A.2.25 WDC_AddrSpaceIsActive() I/O ( (0) ) BOOL DLLCALLCONV WDC_AddrSpaceIsActive( WDC_DEVICE_HANDLE hdev, 32

39 A API DWORD dwaddrspace); hdev WDC_DEVICE_HANDLE dwaddrspace DWORD hdev WDC_xxxDeviceOpen() (PCI [A.2.9] / PCMCIA [A.2.10] / ISA [A.2.11]) WDC dwaddrspace I/O TRUE FALSE A.2.26 WDC_PciReadCfgBySlot() PCI PCI Express PCI Windows Linux PCI Express PCI PCI Express DWORD DLLCALLCONV WDC_PciReadCfgBySlot( WD_PCI_SLOT *ppcislot, DWORD dwoffset, PVOID pdata, DWORD dwbytes); ppcislot WD_PCI_SLOT* dwoffset DWORD pdata PVOID dwbytes DWORD 33

40 WINDRIVER PCI ppcislot dwoffset pdata dwbytes WDC_PciScanDevices() [A.2.4] [A.4.8] PCI PCI WD_STATUS_SUCCESS (0) [A.8] A.2.27 WDC_PciWriteCfgBySlot() PCI PCI Express PCI Windows Linux PCI Express PCI PCI Express DWORD DLLCALLCONV WDC_PciWriteCfgBySlot( WD_PCI_SLOT *ppcislot, DWORD dwoffset, PVOID pdata, DWORD dwbytes); ppcislot WD_PCI_SLOT* dwoffset DWORD pdata PVOID dwbytes DWORD ppcislot WDC_PciScanDevices() [A.2.4] 34

41 A API [A.4.8] dwoffset pdata dwbytes PCI WD_STATUS_SUCCESS (0) [A.8] A.2.28 WDC_PciReadCfg() PCI PCI Express Windows Linux PCI Express PCI PCI Express DWORD DLLCALLCONV WDC_PciReadCfg( WDC_DEVICE_HANDLE hdev, DWORD dwoffset, PVOID pdata, DWORD dwbytes); hdev WDC_DEVICE_HANDLE dwoffset DWORD pdata PVOID dwbytes DWORD hdev dwoffset pdata WDC_PciDeviceOpen() [A.2.9] WDC PCI PCI PCI 35

42 WINDRIVER PCI dwbytes WD_STATUS_SUCCESS (0) [A.8] A.2.29 WDC_PciWriteCfg() PCI PCI Express Windows Linux PCI Express PCI PCI Express DWORD DLLCALLCONV WDC_PciWriteCfg( WDC_DEVICE_HANDLE hdev, DWORD dwoffset, PVOID pdata, DWORD dwbytes); hdev WDC_DEVICE_HANDLE dwoffset DWORD pdata PVOID dwbytes DWORD hdev dwoffset pdata dwbytes WDC_PciDeviceOpen() [A.2.9] WDC PCI PCI WD_STATUS_SUCCESS (0) [A.8] 36

43 A API A.2.30 WDC_PciReadCfgBySlotXXX() WDC_PciReadCfgBySlot8/16/32/64() 1 (8 ) / 2 (16 ) / 4 (32 ) / 8 (64 ) PCI PCI Express PCI Windows Linux PCI Express PCI PCI Express DWORD DLLCALLCONV WDC_PciReadCfgRegBySlot8( WD_PCI_SLOT *ppcislot, DWORD dwoffset, BYTE *val); DWORD DLLCALLCONV WDC_PciReadCfgReg1BySlot6( WD_PCI_SLOT *ppcislot, DWORD dwoffset, WORD *val); DWORD DLLCALLCONV WDC_PciReadCfgReg32BySlot( WD_PCI_SLOT *ppcislot, DWORD dwoffset, UINT32 *val); DWORD DLLCALLCONV WDC_PciReadCfgReg64BySlot( WD_PCI_SLOT *ppcislot, DWORD dwoffset, UINT64 *val); ppcislot WD_PCI_SLOT* dwoffset DWORD val BYTE* / WORD* / UINT32* / UINT64* ppcislot dwoffset val WDC_PciScanDevices() [A.2.4] [A.4.8] PCI PCI WD_STATUS_SUCCESS (0) [A.8] 37

44 WINDRIVER PCI A.2.31 WDC_PciWriteCfgBySlotXXX() WDC_PciWriteCfgBySlot8/16/32/64() 1 (8 ) / 2 (16 ) / 4 (32 ) / 8 (64 ) PCI PCI Express PCI Windows Linux PCI Express PCI PCI Express DWORD DLLCALLCONV WDC_PciWriteCfgRegBySlot8( WD_PCI_SLOT *ppcislot, DWORD dwoffset, BYTE val); DWORD DLLCALLCONV WDC_PciWriteCfgRegBySlot16( WD_PCI_SLOT *ppcislot, DWORD dwoffset, WORD val); DWORD DLLCALLCONV WDC_PciWriteCfgRegBySlot32( WD_PCI_SLOT *ppcislot, DWORD dwoffset, UINT32 val); DWORD DLLCALLCONV WDC_PciWriteCfgRegBySlot64( WD_PCI_SLOT *ppcislot, DWORD dwoffset, UINT64 val); ppcislot WD_PCI_SLOT* dwoffset DWORD val BYTE / WORD / UINT32 / UINT64 ppcislot dwoffset val WDC_PciScanDevices() [A.2.4] [A.4.8] PCI PCI WD_STATUS_SUCCESS (0) [A.8] 38

45 A API A.2.32 WDC_PciReadCfgXXX() WDC_PciReadCfg8/16/32/64() 1 (8 ) / 2 (16 ) / 4 (32 ) / 8 (64 ) PCI PCI Express Windows Linux PCI Express PCI PCI Express DWORD DLLCALLCONV WDC_PciReadCfgReg8(WDC_DEVICE_HANDLE hdev, DWORD dwoffset, BYTE *val); DWORD DLLCALLCONV WDC_PciReadCfgReg16(WDC_DEVICE_HANDLE hdev, DWORD dwoffset, WORD *val); DWORD DLLCALLCONV WDC_PciReadCfgReg32(WDC_DEVICE_HANDLE hdev, DWORD dwoffset, UINT32 *val); DWORD DLLCALLCONV WDC_PciReadCfgReg64(WDC_DEVICE_HANDLE hdev, DWORD dwoffset, UINT64 *val); hdev WDC_DEVICE_HANDLE dwoffset DWORD val BYTE* / WORD* / UINT32* / UINT64* hdev dwoffset val WDC_PciDeviceOpen() [A.2.9] WDC PCI PCI PCI WD_STATUS_SUCCESS (0) [A.8] 39

46 WINDRIVER PCI A.2.33 WDC_PciWriteCfgXXX() WDC_PciWriteCfg8/16/32/64() 1 (8 ) / 2 (16 ) / 4 (32 ) / 8 (64 ) PCI PCI Express Windows Linux PCI Express PCI PCI Express DWORD DLLCALLCONV WDC_PciWriteCfgReg8(WDC_DEVICE_HANDLE hdev, DWORD dwoffset, BYTE val); DWORD DLLCALLCONV WDC_PciWriteCfgReg16(WDC_DEVICE_HANDLE hdev, DWORD dwoffset, WORD val); DWORD DLLCALLCONV WDC_PciWriteCfgReg32(WDC_DEVICE_HANDLE hdev, DWORD dwoffset, UINT32 val); DWORD DLLCALLCONV WDC_PciWriteCfgReg64(WDC_DEVICE_HANDLE hdev, DWORD dwoffset, UINT64 val); hdev WDC_DEVICE_HANDLE dwoffset DWORD val BYTE / WORD / UINT32 / UINT64 hdev dwoffset val WDC_PciDeviceOpen() [A.2.9] WDC PCI PCI PCI WD_STATUS_SUCCESS (0) [A.8] 40

47 A API A.2.34 WDC_PcmciaReadAttribSpace() PCMCIA DWORD DLLCALLCONV WDC_PcmciaReadAttribSpace( WDC_DEVICE_HANDLE hdev, DWORD dwoffset, PVOID pdata, DWORD dwbytes); hdev WDC_DEVICE_HANDLE dwoffset DWORD pdata PVOID dwbytes DWORD hdev dwoffset pdata dwbytes WDC_PcmciaDeviceOpen() [A.2.10] WDC PCMCIA PCMCIA PCMCIA WD_STATUS_SUCCESS (0) [A.8] A.2.35 WDC_PcmciaWriteAttribSpace() PCMCIA DWORD DLLCALLCONV WDC_PcmciaWriteAttribSpace( 41

48 WINDRIVER PCI WDC_DEVICE_HANDLE hdev, DWORD dwoffset, PVOID pdata, DWORD dwbytes); hdev WDC_DEVICE_HANDLE dwoffset DWORD pdata PVOID dwbytes DWORD hdev dwoffset pdata dwbytes WDC_PcmciaDeviceOpen() [A.2.10] WDC PCMCIA PCMCIA WD_STATUS_SUCCESS (0) [A.8] A.2.36 WDC_PcmciaSetWindow() PCMCIA DWORD DLLCALLCONV WDC_PcmciaSetWindow( WDC_DEVICE_HANDLE hdev, WD_PCMCIA_ACC_SPEED speed, WD_PCMCIA_ACC_WIDTH width, DWORD dwcardbase); hdev WDC_DEVICE_HANDLE 42

49 A API speed WD_PCMCIA_ACC_SPEED width WD_PCMCIA_ACC_WIDTH dwcardbase DWORD hdev speed width dwcardbase WDC_PcmciaDeviceOpen() [A.2.10] WDC PCMCIA CMCIA (WD_PCMCIA_ACC_SPEED [A.4.3] ) PCMCIA (WD_PCMCIA_ACC_WIDTH [A.4.4] ) PCMCIA WD_STATUS_SUCCESS (0) [A.8] A.2.37 WDC_PcmciaSetVpp() PCIMCIA (Vpp) DWORD DLLCALLCONV WDC_PcmciaSetVpp( WDC_DEVICE_HANDLE hdev, WD_PCMCIA_VPP vpp); hdev WDC_DEVICE_HANDLE vpp WD_PCMCIA_VPP hdev vpp WDC_PcmciaDeviceOpen() [A.2.10] WDC PCMCIA PCIMCIA (Vpp) 43

50 WINDRIVER PCI (WD_PCMCIA_VPP [A.4.5] ) WD_STATUS_SUCCESS (0) [A.8] A.2.38 WDC_DMAContigBufLock() DMA DWORD DLLCALLCONV WDC_DMAContigBufLock( WDC_DEVICE_HANDLE hdev, PVOID *ppbuf, DWORD dwoptions, DWORD dwdmabufsize, WD_DMA **ppdma); hdev WDC_DEVICE_HANDLE ppbuf PVOID* dwoptions DWORD dwdmabufsize DWORD ppdma WD_DMA** hdev WDC_xxxDeviceOpen() (PCI [A.2.9] / PCMCIA [A.2.10] / ISA [A.2.11]) WDC ppbuf dwoptions DMA (windrvr.h ) DMA_FROM_DEVICE: DMA DMA_TO_DEVICE: DMA DMA_TO_FROM_DEVICE: ( : 44

51 A API DMA_FROM_DEVICE / : DMA_TO_DEVICE) DMA DMA_ALLOW_CACHE: DMA_KBUF_BELOW_16M: 16 MB DMA DMA_ALLOW_64BIT_ADDRESS: ( ) 64 DMA Windows Linux dwdmabufsize ppdma DMA DMA [A.4.13] DMA (*ppdma) WDC_DMABufUnlock() [A.2.40] WD_STATUS_SUCCESS (0) [A.8] DMA_KERNEL_BUFFER_ALLOC Windows x86 x86_64 DMA_ALLOW_CACHE DMA (dwoptions) A.2.39 WDC_DMASGBufLock() DMA DMA Windows 2000 / XP / Server 2003 / Server 2008 / Vista / 7 DWORD DLLCALLCONV WDC_DMASGBufLock( WDC_DEVICE_HANDLE hdev, PVOID pbuf, DWORD dwoptions, DWORD dwdmabufsize, WD_DMA **ppdma); 45

52 WINDRIVER PCI hdev WDC_DEVICE_HANDLE pbuf PVOID dwoptions DWORD dwdmabufsize DWORD ppdma WD_DMA** hdev WDC_xxxDeviceOpen() (PCI [A.2.9] / PCMCIA [A.2.10] / ISA [A.2.11]) WDC pbuf dwoptions dwdmabufsize ppdma DMA (windrvr.h ) DMA_FROM_DEVICE: DMA DMA_TO_DEVICE: DMA DMA_TO_FROM_DEVICE: ( : DMA_FROM_DEVICE / : DMA_TO_DEVICE) DMA DMA_ALLOW_CACHE: DMA_ALLOW_64BIT_ADDRESS: ( ) 64 DMA Windows Linux DMA DMA [A.4.13] DMA (*ppdma) WDC_DMABufUnlock() [A.2.40] WD_STATUS_SUCCESS (0) [A.8] (> 1MB) WinDriver WD_DMALock() / DMA DMA_LARGE_BUFFER WDC_DMASGBufLock() 46

53 A API Windows x86 x86_64 DMA_ALLOW_CACHE DMA (dwoptions) A.2.40 WDC_DMABufUnlock() WDC_DMAContigBufLock() [A.2.38] WDC_DMASGBufLock() [A.2.39] DMA DWORD DLLCALLCONV WDC_DMABufUnlock(WD_DMA *pdma); pdma WD_DMA* pdma WDC_DMAContigBufLock() [A.2.38] ( DMA ) WDC_DMASGBufLock() [A.2.39] ( / DMA ) DMA [A.4.13] *ppdma WD_STATUS_SUCCESS (0) [A.8] A.2.41 WDC_DMASyncCpu() CPU DMA CPU : DMA ( ) DWORD DLLCALLCONV WDC_DMASyncCpu(WD_DMA *pdma); 47

54 WINDRIVER PCI pdma WD_DMA* pdma WDC_DMAContigBufLock() [A.2.38] ( DMA ) WDC_DMASGBufLock() [A.2.39] ( / DMA ) DMA [A.4.13] *ppdma WD_STATUS_SUCCESS (0) [A.8] DMA CPU (CPU) WDC_DMASyncCpu() CPU CPU DMA WDC_DMASyncCpu() CPU CPU ( ) A.2.42 WDC_DMASyncIo() I/O CPU DMA I/O : DMA ( ) DWORD DLLCALLCONV WDC_DMASyncIo(WD_DMA *pdma); pdma WD_DMA* 48

55 A API pdma WDC_DMAContigBufLock() [A.2.38] ( DMA ) WDC_DMASGBufLock() [A.2.39] ( / DMA ) DMA [A.4.13] *ppdma WD_STATUS_SUCCESS (0) [A.8] DMA DMA I/O CPU CPU CPU I/O CPU DMA WDC_DMASyncIo() A.2.43 WDC_SharedBufferAlloc() ( shared buffer ) : Kernel PlugIn DWORD DLLCALLCONV WDC_SharedBufferAlloc( PVOID *ppuseraddr, KPTR *ppkerneladdr, DWORD dwbufsize, DWORD dwoptions, HANDLE *phbuf); *ppuseraddr PVOID* *ppkerneladdr KPTR* 49

56 WINDRIVER PCI dwbufsize DWORD dwoptions DWORD phbuf HANDLE* ppuseraddr ppkerneladdr dwbufsize dwoptions phbuf 0 (*phbuf) WDC_SharedBufferFree() WD_STATUS_SUCCESS (0) [A.8] A.2.44 WDC_SharedBufferFree() WDC_SharedBufferAlloc() #define WDC_SharedBufferFree(hBuf) hbuf HANDLE hbuf WDC_SharedBufferAlloc() 50

57 A API *phbuf WD_STATUS_SUCCESS (0) [A.8] A.2.45 WDC_IntEnable() Linux Windows Vista MSI-X (Extended Message-Signaled Interrupts) MSI (Message-Signaled Interrupts) ( Windows Vista INF ) PCI MSI-X MSI OS MSI / MSI-X ( ) (MSI / MSI-X PCI / PCMCIA / ISA) ( ) : Kernel PlugIn Kernel PlugIn (fusekp=true) Kernel PlugIn MSI / MSI-X KP_IntAtIrqlMSI() KP_IntAtDpcMSI() KP_IntAtIrql() KP_IntAtDpc() Kernel PlugIn IRQ () Kernel PlugIn KP_IntAtIrql() [A.5.8] ( ) KP_IntAtIrqlMSI() (MSI / MSI-X) WinDriver IRQ Kernel PlugIn Kernel PlugIn KP_IntAtDpc() KP_IntAtDpcMSI() WinDriver Kernel PlugIn ( PCI ) Kernel PlugIn Kernel PlugIn KP_IntAtIrql() [A.5.8] WDC_IntEnable() WinDriver Kernel PlugIn Kernel PlugIn (KP_IntAtDpc() [A.5.9] () KP_IntAtDpcMSI() (MSI / MSI-X)) (Kernel PlugIn KP_IntAtIrql() [A.5.8] KP_IntAtIrqlMSI() KP_IntAtDpc() KP_IntAtDpcMSI() ) 51

58 WINDRIVER PCI DWORD DLLCALLCONV WDC_IntEnable( WDC_DEVICE_HANDLE hdev, WD_TRANSFER *ptranscmds, DWORD dwnumcmds, DWORD dwoptions, INT_HANDLER funcinthandler, PVOID pdata, BOOL fusekp); hdev WDC_DEVICE_HANDLE ptranscmds WD_TRANSFER* dwnumcmds DWORD dwoptions DWORD funcinthandler typedef void (*INT_HANDLER)(PVOID pdata); pdata PVOID fusekp BOOL hdev WDC_xxxDeviceOpen() (PCI [A.2.9] / PCMCIA [A.2.10] / ISA [A.2.11]) WDC ptranscmds ( NULL ) : Kernel PlugIn ( PCI ) WinDriver 9.2 A.4.14 WD_TRANSFER dwnumcmds dwoptions ptranscmds (0) 52

59 A API INTERRUPT_CMD_COPY: WinDriver (funcinthandler) funcinthandler pdata fusekp ( INT_HANDLER windrvr_int_thread.h ) (funcinthandler) TRUE IRQ () Kernel PlugIn KP_IntAtIrql() [A.5.8] KP_IntAtIrqlMSI() ( Kernel PlugIn WDC_xxxDeviceOpen() WDC ) (ptranscmds) KP_IntAtIrql() KP_IntAtIrqlMSI() IRQ WinDriver IRQL TRUE Kernel PlugIn KP_IntAtDpc() [A.5.9] KP_IntAtDpcMSI() (funcinthandler) FALSE ptranscmds IRQ WinDriver (funcinthandler) WD_STATUS_SUCCESS (0) [A.8] ( ) WDC_IntDisable() WDC_xxxDriverClose() (PCI: [A.2.12] PCMCIA: [A.2.13] ISA: [A.2.14]) WDC_IntDisable() WinDriver OS Windows Plug-and-Play (PCI / PCI-Express / PCMCIA) INF INF 53

60 WINDRIVER PCI WDC_IntEnable() WD_NO_DEVICE_OBJECT A.2.46 WDC_IntDisable() WDC_IntEnable() [A.2.43] DWORD DLLCALLCONV WDC_IntDisable(WDC_DEVICE_HANDLE hdev); hdev WDC_DEVICE_HANDLE hdev WDC_xxxDeviceOpen() (PCI [A.2.9] / PCMCIA [A.2.10] / ISA [A.2.11]) WDC WD_STATUS_SUCCESS (0) [A.8] A.2.47 WDC_IntIsEnabled() BOOL DLLCALLCONV WDC_IntIsEnabled(WDC_DEVICE_HANDLE hdev); hdev WDC_DEVICE_HANDLE 54

61 A API hdev WDC_xxxDeviceOpen() (PCI [A.2.9] / PCMCIA [A.2.10] / ISA [A.2.11]) WDC TRUE FALSE A.2.48 WDC_EventRegister() Plug-and-Play DWORD DLLCALLCONV WDC_EventRegister( WDC_DEVICE_HANDLE hdev, DWORD dwactions, EVENT_HANDLER funceventhandler, PVOID pdata, BOOL fusekp); hdev WDC_DEVICE_HANDLE dwactions DWORD funceventhandler typedef void (*EVENT_HANDLER)(WD_EVENT *pevent, void *pdata); pdata PVOID fusekp BOOL hdev dwactions WDC_PciDeviceOpen() [A.2.9] WDC_PcmciaDeviceOpen() [A.2.10] Plug-and- Play WDC Plug-and-Play : WD_INSERT - 55

62 WINDRIVER PCI WD_REMOVE - : WD_POWER_CHANGED_D0 WD_POWER_CHANGED_D1 - WD_POWER_CHANGED_D2 WD_POWER_CHANGED_D3 - WD_POWER_SYSTEM_WORKING - : WD_POWER_SYSTEM_SLEEPING1 - WD_POWER_SYSTEM_SLEEPING2 - CPU PCI / PCMCIA WD_POWER_SYSTEM_SLEEPING3 - CPU PCI / PCMCIA WD_POWER_SYSTEM_HIBERNATE - OS WD_POWER_SYSTEM_SHUTDOWN - funceventhandler pdata fusekp (dwactions ) ( EVENT_HANDLER windrvr_events.h ) (funceventhandler) TRUE (dwactions) Kernel PlugIn KP_Event() [A.5.5] ( Kernel PlugIn WDC_xxxDeviceOpen() WDC ) TRUE (funceventhandler) FALSE (dwactions) WD_STATUS_SUCCESS (0) [A.8] WDC_EventUnregister() [A.2.47] Plug-and-Play 56

63 A API A.2.49 WDC_EventUnregister() WDC_EventRegister() [A.2.46] Plug-and-Play DWORD DLLCALLCONV WDC_EventUnregister(WDC_DEVICE_HANDLE hdev); hdev WDC_DEVICE_HANDLE hdev WDC_PciDeviceOpen() [A.2.9] WDC_PcmciaDeviceOpen() [A.2.10] Plug-and- Play WDC WD_STATUS_SUCCESS (0) [A.8] A.2.50 WDC_EventIsRegistered() Plug-and-Play BOOL DLLCALLCONV WDC_EventIsRegistered(WDC_DEVICE_HANDLE hdev); hdev WDC_DEVICE_HANDLE 57

64 WINDRIVER PCI hdev WDC_PciDeviceOpen() [A.2.9] WDC_PcmciaDeviceOpen() [A.2.10] Plug-and- Play WDC Plug-and-Play TRUE FALSE A.2.51 WDC_SetDebugOptions() WDC WDC_DBG_OPTIONS [A.2.1.8] (WDC_DriverOpen() [A.2.2] ) WDC (WDC_DriverClose() [A.2.3] ) WDC (WDC_DEBG_DEFAULT [A.2.1.8] ) DWORD DLLCALLCONV WDC_SetDebugOptions( WDC_DBG_OPTIONS dbgoptions, const CHAR *sdbgfile); dbgoptions WDC_DBG_OPTIONS sdbgfile const CHAR* dbgoptions sdbgfile (WDC_DBG_OPTIONS [A.2.1.8] ) (0) (WDC_DBG_DEFAULT [A.2.1.8] ) WDC WDC_DBG_OUT_FILE ( 58

65 A API 1 ) (dbgoptions) (WDC_DBG_OPTIONS [A.2.1.8] ) WDC_DBG_OUT_FILE sdbgfile NULL WDC (stderr) WD_STATUS_SUCCESS (0) [A.8] A.2.52 WDC_Err() WDC (WDC_DBG_OPTIONS [A.2.1.8] WDC_SetDebugOptions() [A.2.49] ) void DLLCALLCONV WDC_Err( const CHAR *format...); format const CHAR* argument format argument 256 (CHAR) 59

66 WINDRIVER PCI A.2.53 WDC_Trace() WDC (WDC_DBG_OPTIONS [A.2.1.8] WDC_SetDebugOptions() [A.2.49] ) void DLLCALLCONV WDC_Trace( const CHAR *format...); format const CHAR* argument format argument 256 (CHAR) A.2.54 WDC_GetWDHandle() WD_xxx WinDriver PCI / PCMCIA / ISA API ( WinDriver PCI Low-Level API Reference ) WinDriver ( ) HANDLE DLLCALLCONV WDC_GetWDHandle(void); WinDriver INVALID_HANDLE_VALUE 60

67 A API WDC API WDC WinDriver WinDriver WDC WinDriver WD_xxx API (WD_Close() ) WDC_DriverClose() [A.2.3] WDC A.2.55 WDC_GetDevContext() PVOID DLLCALLCONV WDC_GetDevContext(WDC_DEVICE_HANDLE hdev); hdev WDC_DEVICE_HANDLE hdev WDC_xxxDeviceOpen() (PCI [A.2.9] / PCMCIA [A.2.10] / ISA [A.2.11]) WDC NULL A.2.56 WDC_GetBusType() (WD_BUS_PCI WD_BUS_PCMCIA WD_BUS_ISA WD_BUS_UNKNOWN) WD_BUS_TYPE DLLCALLCONV WDC_GetBusType(WDC_DEVICE_HANDLE hdev); 61

68 WINDRIVER PCI hdev WDC_DEVICE_HANDLE hdev WDC_xxxDeviceOpen() (PCI [A.2.9] / PCMCIA [A.2.10] / ISA [A.2.11]) WDC [A.4.1] A.2.57 WDC_Sleep() ( ) CPU DWORD DLLCALLCONV WDC_Sleep( DWORD dwmicrosecs, WDC_SLEEP_OPTIONS options); dwmicrosecs DWORD options WDC_SLEEP_OPTIONS dwmicrosecs options [A.2.1.7] WD_STATUS_SUCCESS (0) [A.8] 62

69 A API A.2.58 WDC_Version() WDC WinDriver DWORD DLLCALLCONV WDC_Version( CHAR *sversion, DWORD *pdwversion); sversion CHAR* pdwversion DWORD* sversion pdwversion 128 () WinDriver WD_STATUS_SUCCESS (0) [A.8] A.3 WDC API WinDriver/include/wdc_defs.h WDC A.3.1 WDC_ID_U WDC ID (PCI PCMCIA ) PciId WD_PCI_ID PCI ID [A.4.6] pcmciaid WD_PCMCIA_ID PCMCIA ID [A.4.7] 63

70 WINDRIVER PCI A.3.2 WDC_ADDR_DESC PCI / PCMCIA / ISA I/O dwaddrspace DWORD fismemory dwitemindex BOOL DWORD TRUE - FALSE - I/O WDC [A.3.3] cardreg.card.item WDC_xxxDeviceOpen() WD_ITEMS dwbytes DWORD kptaddr KPTR WD_Transfer() WD_MultiTransfer() API I/O WDC API dwuserdirectmemaddr UPTR A.3.3 WDC_DEVICE PCI / PCMCIA / ISA WDC_xxxDeviceOpen() (PCI: [A.2.9] / PCMCIA: [A.2.10] / ISA: [A.2.11]) id slot WDC_ID_U WDC_SLOT_U ID (PCI PCMCIA ) [A.3.1] [A.2.1.9] WDC_SLOT_U dwnumaddrspaces DWORD paddrdesc cardreg kerplug Int WDC_ADDR_DESC* WD_CARD_REGISTER WD_KERNEL_PLUGIN WD_INTERRUPT I/O [A.3.2] WDC_xxxDeviceOpen() WD_CardRegister() WinDriver Kernel PlugIn [A.6.1] Kernel PlugIn () WDC_xxxDeviceOpen() WDC 64

71 A API hintthread Event hevent pctx DWORD WD_EVENT HANDLE PVOID WDC_xxxDeviceOpen() WDC WDC WinDriver API WDC API WinDriver Plug-and-Play EventRegister() WinDriver EventRegister() / EventUnregister() WDC API WDC_xxxDeviceOpen() ( ) A.3.4 PWDC_DEVICE WDC_DEVICE [A.3.3] typedef WDC_DEVICE *PWDC_DEVICE A.3.5 WDC_MEM_DIRECT_ADDR WDC_MEM_DIRECT_ADDR(pAddrDesc) paddrdesc WDC_ADDR_DESC* paddrdesc WDC [A.3.2] 65

72 WINDRIVER PCI (paddrdesc->dwuserdirectmemaddr) (paddrdesc->kptaddr) A.3.6 WDC_ADDR_IS_MEM I/O WDC_ADDR_IS_MEM(pAddrDesc) paddrdesc WDC_ADDR_DESC* paddrdesc WDC [A.3.2] paddrdesc->fismemory TRUE FALSE A.3.7 WDC_GET_ADDR_DESC WDC (WDC_ADDR_DESC [A.3.2]) WDC_GET_ADDR_DESC( pdev, dwaddrspace) 66

73 A API pdev PWDC_DEVICE dwaddrspace DWORD pdev dwaddrspace WDC [A.3.4] (pdev->paddrdesc[dwaddrspace]) (WDC_ADDR_DESC [A.3.2]) A.3.8 WDC_GET_ENABLED_INT_TYPE WDC dwenabledinttype WD_INTERRUPT WDC_IntEnable() WDC_GET_ENABLED_INT_TYPE(pDev) PDev PWDC_DEVICE pdev WDC [A.3.4] : INTERRUPT_MESSAGE_X: MSI-X (Extended Message-Signaled Interrupts) INTERRUPT_MESSAGE: MSI (Message-Signaled Interrupts) INTERRUPT_LEVEL_SENSITIVE: 67

74 WINDRIVER PCI INTERRUPT_LATCHED: 0 Windows API MSI MSI-X Windows OS WinDriver MSI MSI-X INTERRUPT_MESSAGE WDC_IntEnable() PCI 1 PCI WDC_INT_IS_MSI MSI MSI-X A.3.9 WDC_GET_INT_OPTIONS WDC WDC_GET_INT_OPTIONS(pDev) PDev PWDC_DEVICE pdev WDC [A.3.4] : INTERRUPT_MESSAGE_X: MSI-X (Extended Message-Signaled Interrupts) INTERRUPT_MESSAGE: MSI (Message-Signaled Interrupts) INTERRUPT_LEVEL_SENSITIVE: INTERRUPT_LATCHED: 0 WDC_INT_IS_MSI MSI (INTERRUPT_MESSAGE) MSI-X (INTERRUPT_MESSAGE_X) 68

75 A API A.3.10 WDC_INT_IS_MSI MSI (Message-Signaled Interrupts) MSI-X (Extended Message-Signaled Interrupts) WDC_INT_IS_MSI(dwIntType) dwinttype DWORD dwinttype MSI (INTERRUPT_MESSAGE) MSI-X (INTERRUPT_MESSAGE_X) TRUE FALSE A.3.11 WDC_GET_ENABLED_INT_LAST_MSG MSI (Message-Signaled Interrupts) MSI-X (Extended Message-Signaled Interrupts) (Windows Vista ) WDC_GET_ENABLED_INT_LAST_MSG(pDev) pdev PWDC_DEVICE pdev WDC [A.3.4] 69

76 WINDRIVER PCI MSI MSI-X 0 A.3.12 WDC_IS_KP WDC Kernel PlugIn WDC_IS_KP(pDev) PDev PWDC_DEVICE pdev WDC [A.3.4] Kernel PlugIn TRUE FALSE A.4 WD_xxx WDC_xxx API WD_xxx API WinDriver/include/windrvr.h A.4.1 WD_BUS_TYP WD_BUS_USB (USB) WD_BUS_UNKNOWN WD_BUS_ISA WD_BUS_EISA ISA EISA (ISA Plug-and-Play) 70

77 A API WD_BUS_PCI WD_BUS_PCMCIA PCI PCMCIA A.4.2 ITEM_TYPE ITEM_NONE ITEM_INTERRUPT ITEM_MEMORY ITEM_IO ITEM_BUS I/O A.4.3 WD_PCMCIA_ACC_SPEED PCMCIA WD_PCMCIA_ACC_SPEED_DEFAULT WD_PCMCIA_ACC_SPEED_250NS WD_PCMCIA_ACC_SPEED_200NS WD_PCMCIA_ACC_SPEED_150NS WD_PCMCIA_ACC_SPEED_1000NS PCMCIA 250 ns 200 ns 150 ns 100 ns A.4.4 WD_PCMCIA_ACC_WIDTH PCMCIA WD_PCMCIA_ACC_WIDTH_DEFAULT WD_PCMCIA_ACC_WIDTH_8BIT WD_PCMCIA_ACC_WIDTH_16BIT PCMCIA 8 16 A.4.5 WD_PCMCIA_VPP PCMCIA (Vpp) 71

78 WINDRIVER PCI WD_PCMCIA_VPP_DEFAULT PCMCIA Vpp WD_PCMCIA_VPP_OFF WD_PCMCIA_VPP_ON WD_PCMCIA_VPP_AS_VSS Vpp 0 () Vpp 12V () Vpp Vcc A.4.6 WD_PCI_ID PCI ID dwvendorid DWORD ID dwdeviceid DWORD ID A.4.7 WD_PCMCIA_ID PCMCIA ID wmanufacturerid WORD ID wcardid WORD ID A.4.8 WD_PCI_SLOT PCI dwbus dwslot DWORD PCI (0 ) DWORD (0 ) dwfunction DWORD (0 ) A.4.9 WD_PCMCIA_SLOT PCMCIA ubus BYTE PCMCIA (0 ) usocket BYTE (0 ) ufunction BYTE (0 ) 72

79 A API A.4.10 WD_ITEMS item fnotsharable DWORD DWORD (ITEM_TYPE [A.4.2] ) WDC_XXXGetDeviceInfo() (PCI: [A.2.7] PCMCIA: [A.2.8]) WD_PciGetCardInfo() WD_PcmciaGetCardInfo() TRUE 1 I/O WDC_XXXGetDeviceInfo() (PCI: [A.2.7] PCMCIA: [A.2.8]) WD_PciGetCardInfo() WD_PcmciaGetCardInfo() dwoptions DWORD WDC_xxxDeviceOpen() (PCI [A.2.9] / PCMCIA [A.2.10] / ISA [A.2.11]) WD_CardRegister() WD_ITEM_OPTIONS WD_ITEM_DO_NOT_MAP_KERNEL: : WD_ITEM_ALLOW_CACHE (Windows CE ): (I.Mem.dwPhysicalAddr) : RAM I union (item) Mem struct (item = ITEM_MEMORY) dwphysicaladdr dwbytes DWORD DWORD WDC_XXXGetDeviceInfo() (PCI: [A.2.7] PCMCIA: [A.2.8]) WD_PciGetCardInfo() WD_PcmciaGetCardInfo() WDC_XXXGetDeviceInfo() (PCI: [A.2.7] PCMCIA: [A.2.8]) WD_PciGetCardInfo() 73

80 WINDRIVER PCI WD_PcmciaGetCardInfo() dwtransaddr dwuserdirectaddr dwcpuphysicaladdr dwbar DWORD DWORD DWORD DWORD (dwphysicaladdr) WDC_xxxDeviceOpen() (PCI [A.2.9] / PCMCIA [A.2.10] / ISA [A.2.11]) WD_CardRegister() (dwphysicaladdr) WDC_xxxDeviceOpen() (PCI [A.2.9] / PCMCIA [A.2.10] / ISA [A.2.11]) WD_CardRegister() (dwphysicaladdr) CPU WDC_xxxDeviceOpen() (PCI [A.2.9] / PCMCIA [A.2.10] / ISA [A.2.11]) WD_CardRegister() (BAR) WDC_XXXGetDeviceInfo() (PCI: [A.2.7] PCMCIA: [A.2.8]) WD_PciGetCardInfo() WD_PcmciaGetCardInfo() IO struct I/O (item = ITEM_IO) dwaddr dwbytes dwbar Int dwinterrupt DWORD DWORD DWORD struct DWORD I/O WDC_XXXGetDeviceInfo() (PCI: [A.2.7] PCMCIA: [A.2.8]) WD_PciGetCardInfo() WD_PcmciaGetCardInfo() I/O WDC_XXXGetDeviceInfo() (PCI: [A.2.7] PCMCIA: [A.2.8]) WD_PciGetCardInfo() WD_PcmciaGetCardInfo() (BAR) WDC_XXXGetDeviceInfo() (PCI: [A.2.7] PCMCIA: [A.2.8]) WD_PciGetCardInfo() WD_PcmciaGetCardInfo() (item = ITEM_INTERRUPT) (IRQ) WDC_XXXGetDeviceInfo() 74

81 A API dwoptions hinterrupt DWORD DWORD (PCI: [A.2.7] PCMCIA: [A.2.8]) WD_PciGetCardInfo() WD_PcmciaGetCardInfo() INTERRUPT_MESSAGE_X MSI-X (Extended Message-Signaled Interrupts) Linux PCI INTERRUPT_MESSAGE Linux MSI (Message-Signaled Interrupts) Windows MSI MSI-X Linux Windows Vista PCI INTERRUPT_LEVEL_SENSITIVE INTERRUPT_LATCHED 0 : Plug-and-Plau (PCI / PCMCIA / ISA) WinDriver WDC_PciGetDeviceInfo() (PCI) WDC_PcmciaGetDeviceInfo() (PCMCIA) ( WD_PciGetCardInfo() WD_PcmciaGetCardInfo()) Plug-and-Play : INTERRUPT_CE_INT_ID - Windows CE ( ) dwinterrupt WinDriver WD_xxx() WinDriver API WinDriver WDC_xxxDeviceOpen() (PCI [A.2.9] / PCMCIA [A.2.10] / ISA [A.2.11]) WD_CardRegister() Bus WD_BUS (item = ITEM_BUS) dwbustype WD_BUS_TYPE (WD_BUS_TYPE [A.4.1] ) 75

82 WINDRIVER PCI dwbusnum DWORD dwslotfunc DWORD () 3 / 0x80 (<=> ) 0 ( 3 : 000) / 0x10 (: 10000) WDC_XXXGetDeviceInfo() (PCI: [A.2.7] PCMCIA: [A.2.8]) WD_PciGetCardInfo() WD_PcmciaGetCardInfo() Val struct A.4.11 WD_CARD dwitems DWORD () Item WD_ITEMS () A.4.12 WD_PCI_CARD_INFO PCI pcislot WD_PCI_SLOT WDC_PciScanDevices() [A.2.4] ( WD_PciScanCards() ) PCI [A.4.8] Card WD_CARD [A.4.10] A.4.13 WD_PCMCIA_CARD_INFO PCMCIA pcmciaslot WD_PCMCIA_SLOT WDC_PcmciaScanDevices() [A.2.6] ( WD_PcmciaScanCards() PCMCIA [A.4.9] Card WD_CARD [A.4.10] cversion CHAR ( ) cmanufacturer CHAR [WD_PCMCIA_ ( ) 76

83 A API cproductname MANUFACTURER_LEN] CHAR [WD_PCMCIA_ PRODUCTNAME_LEN] ( ) wmanufacturerid WORD ID wcardid WORD ID wfuncid WORD ID A.4.14 WD_DMA DMA (Direct Memory Access) hdma puseraddr pkerneladdr DWORD PVOID KPTR DMA ( 0) WDC_DMAContigBufLock() [A.2.38] WDC_DMASGBufLock() [A.2.39] ( WD_DMALock() ) DMA WDC_DMAContigBufLock() [A.2.38] WDC_DMASGBufLock() [A.2.39] ( (pbuf) ) WD_DMALock() : DMA (dwoptions) DMA_KERNEL_ONLY DMA WDC_DMAContigBufLock() [A.2.38] WDC_DMASGBufLock() [A.2.39] (Windows 2000 / XP / Server 2003 / Server 2008 / Vista / 7 ) WD_DMALock() (Windows 2000 / XP / Server 2003 / Server 2008 / Vista / 7 DMA / DMA ) dwbytes DWORD DMA DWORD DMA : ( ) WDC_DMASGBufLock() WDC_DMAContigBufLock() dwoptions WD_DMA dwoptions dwoptions DMA : DMA_FROM_DEVICE: DMA DMA_TO_DEVICE: DMA DMA_TO_FROM_DEVICE: ( : DMA_FROM_DEVICE / : DMA_TO_DEVICE) DMA 77

84 WINDRIVER PCI DMA_KERNEL_BUFFER_ALLOC: DMA () / DMA WD_DMALock() DMA WDC API WDC_DMAContigBufLock() [A.2.38] / DMA WDC_DMASGBufLock() [A.2.39] DMA_KBUF_BELOW_16M: 16 MB DMA DMA (WDC_DMAContigBufLock() [A.2.38] DMA_KERNEL_BUFFER_ALLOC WD_DMALock() ) DMA_LARGE_BUFFER: DMA (dwbytes > 1MB) / DMA WD_DMALock() DMA WDC API DMA WDC_DMASGBufLock() [A.2.39] DMA WDC_DMASGBufLock() [A.2.39] DMA_ALLOW_CACHE: DMA DMA_KERNEL_ONLY_MAP: DMA ( ) DMA_KERNEL_BUFFER_ALLOC ( ) DMA_ALLOW_64BIT_ADDRESS: ( ) 64 DMA Windows Linux dwpages hcard DWORD DWORD DMA 1 (WD_CardRegister() ) WDC_xxxDeviceOpen() WDC WinDriver Page WD_DMA_PAGE DMA 1 (dwpages ) pphysicaladdr KPTR 78

85 A API dwbytes DWORD A.4.15 WD_TRANSFER /IO / DWORD (windrvr.h WD_TRANSFER_CMD ) cmdtrans dwport KPTR / : <dir><p>_[s]<size> : <dir>: R () W () <p>: P (I/O) M ( ) <S>: () <size>: BYTE WORD DWORD QWORD CMD_MASK: (WDC_IntEnable() [A.2.43] InterruptEnable() WD_IntEnable() ) CMD_MASK WinDriver WD_TRANSFER Data ptranscmds WD_TRANSFER ptranscmds[i-1].cmdtrans RM_BYTE WinDriver ptranscmds[i-1].data.byte & ptranscmds[i].data.byte ( MSI / MSI-X WinDriver ) : CMD_MASK (RM_XXX / RP_XXX) (WDC_DEVICE [A.3.3]) I/O : dev.paddrdesc[i].kptaddr (i ) ( WD_xxx() API cardreg.card.item[i] dwaddr (I/O) dwtransaddr ( ) dwbytes DWORD fautoinc DWORD () TRUE I/O / FALSE / / dwoptions DWORD 0 79

86 WINDRIVER PCI Data union ( ) BYTE Byte 8 Word WORD 16 Dword UINT32 32 Qword UINT64 64 pbuffer PVOID () ( ) A.5 Kernel PlugIn Kernel PlugIn KP_Init() [A.5.1] KP_Init() KP_Open() KP_Open() : kpopencall->funcclose = KP_Close; kpopencall->funccall = KP_Call; kpopencall->funcintenable = KP_IntEnable; kpopencall->funcintdisable = KP_IntDisable; kpopencall->funcintatirql = KP_IntAtIrql; kpopencall->funcintatdpc = KP_IntAtDpc; kpopencall->funcintatirqlmsi = KP_IntAtIrqlMSI; kpopencall->funcintatdpcmsi = KP_IntAtDpcMSI; kpopencall->funcevent = KP_Event; Kernel PlugIn KP_XXX() KP_Open() KP_Call() Kernel PlugIn KP_Init() Kernel PlugIn DriverWizardKernel PlugIn ( <MyKP> KP_MyKP_Open() KP_MyKP_Call() ) A.5.1 KP_Init() Kernel PlugIn Kernel PlugIn KP_Open() [A.5.2] BOOL cdecl KP_Init(KP_INIT *kpinit); 80

87 A API kpinit KP_INIT* dwverwd DWORD cdrivername CHAR[12] funcopen KP_FUNC_OPEN kpinit dwverwd cdrivername funcopen Kernel PlugIn [A.6.4] WinDriver Kernel PlugIn ( 12 ) WD_KernelPlugInOpen() KP_Open() pckpdrivername Kernel PlugIn WD_KernelPlugInOpen() WDC_xxxDeviceOpen() (PCI [A.2.9] / PCMCIA [A.2.10] / ISA [A.2.11]) TRUE FALSE KP_Init() Kernel PlugIn WinDriver KP_Init() BOOL cdecl KP_Init(KP_INIT *kpinit) { /* Check if the version of the WinDriver Kernel PlugIn library is the same version as windrvr.h and wd_kp.h */ if (kpinit->dwverwd!= WD_VER) { /* You need to re-compile your Kernel PlugIn with the compatible version of the WinDriver Kernel PlugIn library, windrvr.h and wd_kp.h */ return FALSE; } kpinit->funcopen = KP_Open; strcpy (kpinit->cdrivername, "KPDriver"); /* Up to 12 chars */ return TRUE; } 81

88 WINDRIVER PCI A.5.2 KP_Open() WD_KernelPlugInOpen() pckpdrivername Kernel PlugIn WD_KernelPlugInOpen() WDC_xxxDeviceOpen() (PCI [A.2.9] / PCMCIA [A.2.10] / ISA [A.2.11]) Kernel PlugIn (KP_Call() [A.5.4] KP_IntEnable() [A.5.6] ) ( ) (*ppdrvcontext) Kernel PlugIn BOOL cdecl KP_Open( KP_OPEN_CALL *kpopencall, HANDLE hwd, PVOID popendata, PVOID *ppdrvcontext); kpopencall KP_OPEN_CALL hwd HANDLE popendata PVOID ppdrvcontext PVOID* kpopencall hwd popendata ppdrvcontext KP_xxx() [A.6.5] WD_KernelPlugInOpen() WinDriver KP_Close() [A.5.3] KP_Call() [A.5.4] KP_IntEnable() [A.5.6] KP_Event() [A.5.5] TRUE FALSE WD_KernelPlugInOpen() 82

89 A API BOOL cdecl KP_Open(KP_OPEN_CALL *kpopencall, HANDLE hwd, PVOID popendata, PVOID *ppdrvcontext) { kpopencall->funcclose = KP_Close; kpopencall->funccall = KP_Call; kpopencall->funcintenable = KP_IntEnable; kpopencall->funcintdisable = KP_IntDisable; kpopencall->funcintatirql = KP_IntAtIrql; kpopencall->funcintatdpc = KP_IntAtDpc; kpopencall->funcintatirqlmsi = KP_IntAtIrqlMSI; kpopencall->funcintatdpcmsi = KP_IntAtDpcMSI; kpopencall->funcevent = KP_Event; } /* You can allocate driver context memory here: */ *ppdrvcontext = malloc(sizeof(mydrv_struct)); return *ppdrvcontext!=null; A.5.3 KP_Close() WD_KernelPlugInClose() Kernel PlugIn (pckpdrivername Kernel PlugIn WDC_xxxDeviceOpen() (PCI [A.2.9] / PCMCIA [A.2.10] / ISA [A.2.11]) ) WDC_xxxDeviceClose() (PCI [A.2.12] / PCMCIA [A.2.13] / ISA [A.2.14]) Kernel PlugIn WD_KernelPlugInClose() Kernel PlugIn ( ) void cdecl KP_Close(PVOID pdrvcontext); KP_FUNC_ CLOSE Kernel PlugnIn callback function type. pdrvcontext PVOID pdrvcontext KP_Open() [A.5.2] 83

90 WINDRIVER PCI void cdecl KP_Close(PVOID pdrvcontext) { if (pdrvcontext) free(pdrvcontext); /* Free allocated driver context memory */ } A.5.4 KP_Call() WDC_CallKerPlug() [A.2.17] ( WD_KernelPlugInCall()) void cdecl KP_Call( PVOID pdrvcontext, WD_KERNEL_PLUGIN_CALL *kpcall, BOOL fiskernelmode); KP_FUNC_ CALL Kernel PlugnIn callback function type. pdrvcontext PVOID / kpcall WD_KERNEL_PLUGIN_CALL dwmessage DWORD pdata PVOID / dwresult DWORD fiskernelmode BOOL pdrvcontext kpcall KP_Open() [A.5.2] KP_Close() [A.5.3] KP_IntEnable() [A.5.6] KP_Event() [A.5.5] WDC_CallKerPlug() [A.2.17] ( WD_KernelPlugInCall()) / [A.6.3] 84

WinDriver v9.00 PCI API リファレンス

WinDriver v9.00 PCI API リファレンス JUNGO WinDriver PCI/ISA/CardBus API リファレンス エクセルソフト株式会社 i JUNGO LTD. COPYRIGHT Copyright (c) 1997-2007 Jungo Ltd. All Rigths Reserved. Jungo Ltd. POB 8493 Netanya Zip - 42504 Israel Phone (USA) 1-877-514-0537

More information

エクセルソフト株式会社 WinDriver PCI 5! WinDriver 1. DriverWizard 2. DriverWizard WinDriver 1. Windows 98/Me NT/2000/XP Windows CE/CE.NET Windows Server 2003 Lin

エクセルソフト株式会社 WinDriver PCI 5! WinDriver 1. DriverWizard 2. DriverWizard WinDriver 1. Windows 98/Me NT/2000/XP Windows CE/CE.NET Windows Server 2003 Lin 5! WinDriver 1. DriverWizard 2. DriverWizard WinDriver 1. Windows 98/Me NT/2000/XP Windows CE/CE.NET Windows Server 2003 Linux Solaris VxWorks Web http://www.xlsoft.com/jp/products/windriver/ 2. WinDriver

More information

WinDriver を使用して、簡単にデバイス ドライバを作成

WinDriver を使用して、簡単にデバイス ドライバを作成 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

More information

WinDriver V10.10 ユーザーズ ガイド

WinDriver V10.10 ユーザーズ ガイド JUNGO WinDriver JUNGO LTD. COPYRIGHT Copyright (c) 1997 2009 Jungo Ltd. All Rigths Reserved. Jungo Ltd. POB 8493 Netanya Zip - 42504 Israel Phone (USA) 1-877-514-0537 (WorldWide) +972-9-8859365 Fax (USA)

More information

WinDriver PCI Quick Start Guide

WinDriver PCI Quick Start Guide WinDriver PCI/PCI Express/PCMCIA 5! WinDriver (1) DriverWizard (2) DriverWizard WinDriver (1) Windows 98/Me/2000/XP/Server 2003/Vista Windows CE.NET Windows Embedded CE v6.00 Windows Mobile 5.0/6.0 Linux

More information

Jungo LTD. COPYRIGHT Copyright (c) Jungo Ltd. All Rights Reserved. Jungo Ltd. POB8493 Netanya Zip Israel Phone (USA) (W

Jungo LTD. COPYRIGHT Copyright (c) Jungo Ltd. All Rights Reserved. Jungo Ltd. POB8493 Netanya Zip Israel Phone (USA) (W Appendix B. API Reference エクセルソフト株式会社 - 1 - Jungo LTD. COPYRIGHT Copyright (c) 1997 2018 Jungo Ltd. All Rights Reserved. Jungo Ltd. POB8493 Netanya Zip 42504 Israel Phone (USA) 1-877-514-0537 (Worldwide)

More information

WinDriver v10.10 USB リファレンス

WinDriver v10.10 USB リファレンス JUNGO WinDriver USB API i JUNGO LTD. COPYRIGHT Copyright (c) 1997-2009 Jungo Ltd. All Rigths Reserved. Jungo Ltd. POB 8493 Netanya Zip - 42504 Israel Phone (USA) 1-877-514-0537 (WorldWide) +972-9-8859365

More information

WinDriver Readme

WinDriver Readme Jungo WinDriver README WinDriver CD WinDriver CD-ROM WinDriver CD Windows 8 Developer Preview / 7 / Server 2008 / Vista / Server 2003 / XP x86 32 x64 64 WinDriver WinDriver (Linux WinCE ) (201295) WinDriver

More information

Jungo LTD. COPYRIGHT Copyright (c) Jungo Ltd. All Rights Reserved. Jungo Ltd. POB8493 Netanya Zip Israel Phone (USA) (W

Jungo LTD. COPYRIGHT Copyright (c) Jungo Ltd. All Rights Reserved. Jungo Ltd. POB8493 Netanya Zip Israel Phone (USA) (W Appendix C. WinDriver IPC エクセルソフト株式会社 - 1 - Jungo LTD. COPYRIGHT Copyright (c) 1997 2018 Jungo Ltd. All Rights Reserved. Jungo Ltd. POB8493 Netanya Zip 42504 Israel Phone (USA) 1-877-514-0537 (Worldwide)

More information

WinDriver Readme

WinDriver Readme Jungo WinDriver README WinDriver CD WinDriver CD-ROM WinDriver CD Windows 7 / Server 2008 / Vista / Server 2003 / XP / 2000 x86 32 x64 64 WinDriver WinDriver (LinuxWinceSolaris ) (201099) WinDriver Bus

More information

Gpci4ソフト_下位DLL_説明書3版.PDF

Gpci4ソフト_下位DLL_説明書3版.PDF G-PCI4 ... 3 WINDOWSNT...3 WINDOWS2000/XP...3... 4...4 DLL WINDOWSNT/2000/XP...4...4... 5...5... 6...6...6...6...6...7...9...11... 11... 11... 11... 12... 12...12 ...13...14 1... 14 2... 15 3... 16 4...

More information

WinDriver v9.21 USB リファレンス

WinDriver v9.21 USB リファレンス JUNGO WinDriver USB API リファレンス エクセルソフト株式会社 i JUNGO LTD. COPYRIGHT Copyright (c) 1997-2008 Jungo Ltd. All Rigths Reserved. Jungo Ltd. POB 8493 Netanya Zip - 42504 Israel Phone (USA) 1-877-514-0537 (WorldWide)

More information

WinDriver USB v8.00 User's Guide

WinDriver USB v8.00 User's Guide JUNGO WinDriver USB i JUNGO LTD. COPYRIGHT Copyright (c) 1997-2005 Jungo Ltd. All Rigths Reserved. Jungo Ltd. POB 8493 Netanya Zip - 42504 Israel Phone (USA) 1-877-514-0537 (WorldWide) +972-9-8859365 Fax

More information

IO-PCIソフト仕様書3版.PDF

IO-PCIソフト仕様書3版.PDF DLL iopcisb.dll95/98/me iopcisbnt.dllnt/2000/xp WindowsSystem iopcisb.lib(95/98/me) iopcisbnt.lib(nt/2000/xp) VisualC/C++ IOPCIapi.h HANDLEhVxD // hvxd=iopciopen(1); // (1) ID // // intret; ret=iopciclose(

More information

untitled

untitled EPX-64S Rev 1.2 1.. 3 1.1.......... 3 1.2....... 3 1.3....... 4 1.4... 4 1.5... 4 2........ 5 2.1.... 5 EPX64S_GetNumberOfDevices........ 5 EPX64S_GetSerialNumber........ 6 EPX64S_Open....... 7 EPX64S_OpenBySerialNumber

More information

00-COVER.P65

00-COVER.P65 AHA-2910C R AHA-2910C PCI-to-Fast SCSI 1998 Adaptec, Inc. All rights reserved. Adaptec, Inc., 691 South Milpitas Blvd., Milpitas, CA 95035 Adaptec Adaptec Adaptec AHA PhaseEngine SCSISelect Adaptec Adaptec

More information

Nios® II HAL API を使用したソフトウェア・サンプル集 「Modular Scatter-Gather DMA Core」

Nios® II HAL API を使用したソフトウェア・サンプル集 「Modular Scatter-Gather DMA Core」 ALTIMA Company, MACNICA, Inc Nios II HAL API Modular Scatter-Gather DMA Core Ver.17.1 2018 8 Rev.1 Nios II HAL API Modular Scatter-Gather DMA Core...3...3...4... 4... 5 3-2-1. msgdma... 6 3-2-2. On-Chip

More information

A Responsive Processor for Parallel/Distributed Real-time Processing

A Responsive Processor for Parallel/Distributed Real-time Processing E-mail: yamasaki@{ics.keio.ac.jp, etl.go.jp} http://www.ny.ics.keio.ac.jp etc. CPU) I/O I/O or Home Automation, Factory Automation, (SPARC) (SDRAM I/F, DMAC, PCI, USB, Timers/Counters, SIO, PIO, )

More information

LMC-CA84U2

LMC-CA84U2 LMC-CA84U2_V06 USB 2.0 Memory Card READER LMC-CA84U2 ... 1... 4... 5... 5... 6... 6... 11... 13 USB 2.0... 17 Macintosh... 18...18...21 Macintosh...24 Windows... 26 Windows XP...26 Windows Me,2000,98...

More information

MultiPASS Suite 3.20 使用説明書

MultiPASS Suite 3.20 使用説明書 TM MultiPASS Suite Ver.3.20 for Windows ii iii Copyright 2000 Canon Inc. ALL RIGHTS RESERVED iv v vi vii viii ix x 1 1 1-1 1 1 2 3 1-2 4 5 1 1-3 1 6 1-4 7 1 8 9 1-5 10 1 11 1-6 1 1-7 1 1-8 2 1 1-9 1 1

More information

ネットワークガイド/本編

ネットワークガイド/本編 JPN ii iii iv v 9 vi vii 1 CHAPTER 1-1 1-2 1-3 1-4 1-5 1-6 1-7 2 CHAPTER 2-1 2-2 1 2 3 2-3 4 5 2-4 6 a b a b 7 2-5 8 9 2-6 10 a b a b 2-7 11 a b b a 2-8 a b a a b b a b 2-9 a b a b 12 2-10 a b a b 2-11

More information

IC 2002 6 12 NEC CK1505-01A IC 1 4 2 5 3 IC 10 3.1 IC...10 3.2...10 4 IC 11 5 USB 13 5.1 USB...13 5.2 USB...15 6 IC 22 7 23 7.1...23 7.2...24 7.3...27 CK1505-01A IC 1 IC USB IC OS USB Windows Windows98(98SE)/Me/2000/XP

More information

WinDriver Readme

WinDriver Readme この度は Jungo ドライバ開発ツール WinDriver をお買い求めいただき誠にありがとうございま す ご使用の前にこの README を必ずお読みください WinDriver のインストール CD WinDriver インストール CD-ROM には 各オペレーティングシステム用の WinDriver が収録されています CD のルートディレクトリには Windows 10 / 8.1 /

More information

LMC-CA64U2K

LMC-CA64U2K LMC-CA64U2K V04 INTERNAL USB 2.0 Memory Card READER ... 1... 4... 5... 5... 6... 8... 8... 12 USB 2.0... 14... 15... 15 USB... 16 USB... 19... 24 Windows XP... 24 Windows Me... 25 Windows 98... 28 WIndows

More information

WinDriver Readme

WinDriver Readme この度は Jungo ドライバ開発ツール WinDriver をお買い求めいただき誠にありがとうございま す ご使用の前にこの README を必ずお読みください WinDriver のインストール Windows 10 / 10 IoT Core / Server 2016 / 8.1 / Server 2012 R2 / 8 / Server 2012 / 7 / Server 2008 R2

More information

REX-5051fx,ex User's Manual

REX-5051fx,ex User's Manual REX-5051fx REX-5051ex ...1...1...1...2...2...4 1. REX-5051...1-1...1-1 OS( )...1-2...1-2 (REX-5051fx)...1-3 (REX-5051ex)...1-4...1-5 2....2-1 REX-5051fx...2-1 REX-5051ex...2-2...2-3 REX-5051fx...2-4 REX-5051fx...2-4

More information

橡Webcamユーザーガイド03.PDF

橡Webcamユーザーガイド03.PDF Desktop On-Call Version 4 Webcam extension Pak for Windows Webcam extension Pak Desktop On-Call Version 4 Web PC i Desktop On-Call Version 4 PC PC Desktop On-Call Version 4 PC Windows 98 Windows 98SE Windows

More information

WinDriver Readme

WinDriver Readme この度は Jungo ドライバ開発ツール WinDriver をお買い求めいただき誠にありがとうございま す ご使用の前にこの README を必ずお読みください WinDriver のインストール CD WinDriver インストール CD-ROM には 各オペレーティングシステム用の WinDriver が収録されています CD のルートディレクトリには Windows 10 / 8.1 /

More information

Complex Lab – Operating Systems - Graphical Console

Complex Lab – Operating Systems - Graphical Console Complex Lab Operating Systems Graphical Console Martin Küttler Last assignment Any questions? Any bug reports, whishes, etc.? 1 / 13 We are here Pong Server Paddle Client 1 Paddle Client 2 Memory Management

More information

u302.book

u302.book Text Search Filter Library Version 3 3000-6-302-10 P-1MD3-3831* Text Search Filter Library Version 3 03-10 OS AIX 5L V5.2 AIX 5L V5.3 P-24D3-3834 Text Search Filter Library Version 3 03-10 OS Windows 2000

More information

VM-53PA1取扱説明書

VM-53PA1取扱説明書 VM-53PA1 VM-53PA1 VM-53 VM-53A VM-52 VM-52A VM-53PA1 VM-53PA1 VM-53A CF i ii VM-53 VM-53A VM-52 VM-52A CD-ROM iii VM-53PA1 Microsoft Windows 98SE operating system Microsoft Windows 2000 operating system

More information

SAP Solution in Detail SAP Business One SAP Business One 1 SAP Business One 5 SAP Business One 5 1 5 5 5 6 6 SAP Business One 6 / 6 / 6 / 7 / 7 / 7 / 7 SAP Business One 8 8 9 9 CRM 9 CRM 10 10 SAP Business

More information

unitech PA500 Enterprise PDA Rev. A

unitech PA500 Enterprise PDA Rev. A unitech PA500 Enterprise PDA Rev. A PA500 Enterprise PDA Unitech Copyright 2007 unitech Electronics Co., Ltd. Web : http:\\www.unitech-japan.co.jp Bluetooth Bluetooth SIG Microsoft Windows ActiveSync

More information

REX-5051W/FW/EW PC Card Adapter

REX-5051W/FW/EW PC Card Adapter REX-5051W REX-5051FW REX-5051EW ...1...1...1...2...2...4 1. REX-5051...1-1...1-1 OS( )...1-2...1-2 (REX-5051W,REX-5051FW)...1-3 (REX-5051EW)...1-4...1-5 2....2-1 REX-5051FW...2-1 REX-5051W...2-2 REX-5051EW...2-3...2-4

More information

LPM-CBUSB2

LPM-CBUSB2 LPM-CBUSB V04A CardBus USB.0 INTERFACE Card USB.0 LPM-CBUSB ... 1... 4... 5... 5... 6... 6... 7... 8... 9 Windows XP... 9 Service Pack... 9... 10... 1...16...... 3 Windows Me...4... 4...7 Windows 98...8...

More information

Microsoft Word - sbnt40r7.doc

Microsoft Word - sbnt40r7.doc 1. Microsoft Windows NT4.0 Workstation/Server ( NT40) Sound Blaster 2. AT (DOS/V ) x86 NT40 3. NEC PC98 MIPS R Alpha PowerPC 4. NT40 DOS ( ) 5. [ ] [ ] [ ] 6. (1 5) ( ) 7. NT40 NT40 A J A. Sound Blaster

More information

AccessflÌfl—−ÇŠš1

AccessflÌfl—−ÇŠš1 ACCESS ACCESS i ii ACCESS iii iv ACCESS v vi ACCESS CONTENTS ACCESS CONTENTS ACCESS 1 ACCESS 1 2 ACCESS 3 1 4 ACCESS 5 1 6 ACCESS 7 1 8 9 ACCESS 10 1 ACCESS 11 1 12 ACCESS 13 1 14 ACCESS 15 1 v 16 ACCESS

More information

Part0(TOC).ISA.V2

Part0(TOC).ISA.V2 LA-ISA V2 ii iii LA-ISA V2 iv v B 10 A Plug & Play Plug & Play Legacy Legacy 9 11 Legacy 8 Plug & Play Legacy 7 Legacy 6 3 2 5 Legacy Legacy 1 Plug & Play 4 vi 10 9 8 7 6 5 4 3 2 1 vii viii 10 9 8 7 6

More information

SystemC言語概論

SystemC言語概論 SystemC CPU S/W 2004/01/29 4 SystemC 1 SystemC 2.0.1 CPU S/W 3 ISS SystemC Co-Simulation 2004/01/29 4 SystemC 2 ISS SystemC Co-Simulation GenericCPU_Base ( ) GenericCPU_ISS GenericCPU_Prog GenericCPU_CoSim

More information

i

i 14 i ii iii iv v vi 14 13 86 13 12 28 14 16 14 15 31 (1) 13 12 28 20 (2) (3) 2 (4) (5) 14 14 50 48 3 11 11 22 14 15 10 14 20 21 20 (1) 14 (2) 14 4 (3) (4) (5) 12 12 (6) 14 15 5 6 7 8 9 10 7

More information

FUJITSU ULTRA LVD SCSI Host Bus Adapter Driver 3.0 説明書

FUJITSU ULTRA LVD SCSI Host Bus Adapter Driver 3.0 説明書 C120-E285-10Z2 FUJITSU ULTRA LVD SCSI Host Bus Adapter Driver 3.0 - for Oracle Solaris - () FUJITSU ULTRA LVD SCSI Host Bus Adapter 3.0 SCSI/SAS SCSI/SAS HBA(Host Bus Adapter) WARNING:

More information

r07.dvi

r07.dvi 19 7 ( ) 2019.4.20 1 1.1 (data structure ( (dynamic data structure 1 malloc C free C (garbage collection GC C GC(conservative GC 2 1.2 data next p 3 5 7 9 p 3 5 7 9 p 3 5 7 9 1 1: (single linked list 1

More information

ohp07.dvi

ohp07.dvi 19 7 ( ) 2019.4.20 1 (data structure) ( ) (dynamic data structure) 1 malloc C free 1 (static data structure) 2 (2) C (garbage collection GC) C GC(conservative GC) 2 2 conservative GC 3 data next p 3 5

More information

94

94 4 1 2 3 4 5 6 7 8 9 10 11 12 94 4 95 1 2 3 4 96 5 5 4 97 98 1 2 3 4 99 4 100 5 6 1 2 4 101 1 2 3 4 5 1 2 3 4 102 1 2 3 4 4 103 1 2 104 1 2 3 4 4 5 105 1 2 106 4 107 108 1 2 3 4 4 109 1 2 3 4 110 1 2 3

More information

FreeBSD 1

FreeBSD 1 FreeBSD 1 UNIX OS 1 ( ) open, close, read, write, ioctl (cdevsw) OS DMA 2 (8 ) (24 ) 256 open/close/read/write Ioctl 3 2 2 I/O I/O CPU 4 open/close/read/write open, read, write open/close read/write /dev

More information

untitled

untitled Oracle Direct Seminar Oracle Database.NET NET Visual Studio Oracle Copyright 2010, Oracle. All rights reserved. 2 .NET Oracle.NET + Oracle Visual Studio + Oracle.NET + Oracle Copyright

More information

MultiPASS B-20 MultiPASS Suite 3.10使用説明書

MultiPASS B-20 MultiPASS Suite 3.10使用説明書 TM MultiPASS Suite Ver.3.10 for Windows ii iii Copyright 1999 Canon Inc. ALL RIGHTS RESERVED iv v vi vii viii ix x 1 2 3 4 5 6 7 8 9 xi xii 1 1 1-1 1 2 3 1-2 4 5 1 1-3 6 1-4 1 7 8 1-5 9 10 11 1-6 1 1-7

More information

RX600 & RX200シリーズ アプリケーションノート RX用仮想EEPROM

RX600 & RX200シリーズ アプリケーションノート RX用仮想EEPROM R01AN0724JU0170 Rev.1.70 MCU EEPROM RX MCU 1 RX MCU EEPROM VEE VEE API MCU MCU API RX621 RX62N RX62T RX62G RX630 RX631 RX63N RX63T RX210 R01AN0724JU0170 Rev.1.70 Page 1 of 33 1.... 3 1.1... 3 1.2... 3

More information

LMC-CA144U2

LMC-CA144U2 LMC-CA144U2_V01 USB 2.0 Memory Card READER LMC-CA144U2 ... 1... 4... 5... 5... 6... 6... 11... 13 USB 2.0... 20 Macintosh... 21... 21 Mac OS X... 21 Mac OS... 25... 28 Macintosh... 31 Windows... 33...

More information

0.laisa.copyright.B

0.laisa.copyright.B ii!!!! iii iv 1 2 3 4 5 A S v vi vii viii 1 2 3 4 5 A S ix x 1 1-1 1 1-2 1 LK RX TX 1-3 1 1 4 2 3 S/N 000770000002346 Rev 1A 0000F4300123 5 6 1-4 1 4 2 3 1 S/N 000770000002346 Rev 1A 0000F4300123 5 7 1-5

More information

book

book Bibliotheca21 Personal 3020-7-245-30 P-26D3-A114 Bibliotheca21 Personal 01-30 OS Windows 2000 Windows Server(R) 2003 Windows XP Windows Server(R) 2008 Windows Vista(R) Windows 7 Adobe Adobe Systems Incorporated

More information

cpp1.dvi

cpp1.dvi 2017 c 1 C++ (1) C C++, C++, C 11, 12 13 (1) 14 (2) 11 1 n C++ //, [List 11] 1: #include // C 2: 3: int main(void) { 4: std::cout

More information

konicaminolta.co.jp PageScope Net Care

konicaminolta.co.jp PageScope Net Care konicaminolta.co.jp PageScope Net Care KONICA MINOLTA PageScope Net Care KONICA MINOLTA PageScope Net Care Web KONICA MINOLTA PageScope Net Care SNMP KONICA MINOLTA Printer-MIB KONICA MINOLTA PageScope

More information

橡PervasiveSQL2000ReviewersGuide.PDF

橡PervasiveSQL2000ReviewersGuide.PDF Pervasive.SQL 2000 Reviewer s Guide Pervasive.SQL TM 2000 Reviewer s Guide Rev.1 11/99 Pervasive Software Inc. The Freedom to Create Applications for Everyone, Everywhere ...3 Pervasive.SQL 2000...4 Pervasive.SQL

More information

DOMINOTM DOMINO Melody TM DOMINO Harmony TM DOMINO Symphony TM PCI PCIe DOMINO TM DOMINO Iota TM - DOMINO Melody TM - DOMINO Alpha 2 TM DOMINO Harmony

DOMINOTM DOMINO Melody TM DOMINO Harmony TM DOMINO Symphony TM PCI PCIe DOMINO TM DOMINO Iota TM - DOMINO Melody TM - DOMINO Alpha 2 TM DOMINO Harmony TM Melody TM Harmony TM Symphony TM e TM Iota TM Melody TM Alpha 2 TM Harmony TM Symphony TM Symphony e TM www.euresys.com info@euresys.com Copyright 200 Euresys s.a. Belgium Euresys Euresys s.a. Belgium

More information

07-二村幸孝・出口大輔.indd

07-二村幸孝・出口大輔.indd GPU Graphics Processing Units HPC High Performance Computing GPU GPGPU General-Purpose computation on GPU CPU GPU GPU *1 Intel Quad-Core Xeon E5472 3.0 GHz 2 6 MB L2 cache 1600 MHz FSB 80 GFlops 1 nvidia

More information

目次 目次... 1 はじめに... 3 概要... 4 サポート環境... 5 関数... 6 MEC_OpenDevice... 7 MECDevice_Release... 8 MECDevice_GetFirmVersion... 9 MECDevice_GetCoreTemperature

目次 目次... 1 はじめに... 3 概要... 4 サポート環境... 5 関数... 6 MEC_OpenDevice... 7 MECDevice_Release... 8 MECDevice_GetFirmVersion... 9 MECDevice_GetCoreTemperature MECodecAPI Reference Manual 2015 年 9 月 1 日 MEDIAEDGE 株式会社 目次 目次... 1 はじめに... 3 概要... 4 サポート環境... 5 関数... 6 MEC_OpenDevice... 7 MECDevice_Release... 8 MECDevice_GetFirmVersion... 9 MECDevice_GetCoreTemperature...

More information

Installer_J

Installer_J (1) (2) (3) (4) (5) (3) Microsoft Windows Windows Vista Visual Basic Visual C++ EPSON ESC/POS Copyright 2008 SEIKO EPSON CORPORATION 1...1 1.1...1 1.2...1 1.3...2 2...3 2.1...3 2.2...3 2.2.1...4 2.2.2...10

More information

EPSON Offirio SynergyWare PrintDirector 取扱説明書 導入ガイド

EPSON Offirio SynergyWare PrintDirector 取扱説明書 導入ガイド Offirio SynergyWare PrintDirector K L Microsoft WindowsNT Operating System Version4.0 Microsoft Windows 2000 Operating System Microsoft Windows Server 2003, Standard Edition Microsoft Windows Server 2003,

More information

インストールマニュアル

インストールマニュアル EPSON OPOS ADK (1) (2) (3) (4) (5) (3) Microsoft Windows Windows Vista Windows Server Visual Basic Visual C++ EPSON ESC/POS Copyright 2000-2011 SEIKO EPSON CORPORATION 1...1 1.1...1 1.2...1 1.3...2 2...4

More information

Quartus II ハンドブック Volume 5、セクションIV. マルチプロセッサの調整

Quartus II ハンドブック  Volume 5、セクションIV. マルチプロセッサの調整 IV. SOPC Builder Nios II 9 Avalon Mutex 10 Avalon Mailbox 9 10 / 9 v5.1.0 2005 5 v5.0.0 Nios II 2004 12 v1.0 10 v5.1.0 2005 5 v5.0.0 Altera Corporation IV 1 Quartus II Volume 5 IV 2 Altera Corporation

More information

チュートリアル XP Embedded 入門編

チュートリアル XP Embedded 入門編 TUT-0057 Ver. 1.0 www.interface.co.jp Ver 1.0 2005 6 (,), Web site () / () 2004 Interface Corporation. All rights reserved. ...1...1 1. XP Embedded...2 2....3 2.1....3 2.2....4 2.2.1. SLD...4 2.3....5

More information

thesis.dvi

thesis.dvi H8 e041220 2009 2 Copyright c 2009 by Kentarou Nagashima c 2009 Kentarou Nagashima All rights reserved , H8.,,,..,.,., AKI-H8/3052LAN. OS. OS H8 Write Turbo. H8 C, Cygwin.,., windows. UDP., (TA7279P).,.

More information

LDR-MA16FU2_WM.n.[.h.E.F.A.}.j...A.._Win.p65

LDR-MA16FU2_WM.n.[.h.E.F.A.}.j...A.._Win.p65 LDR-MA16FU2/WM DVD-RAM DVD+R 2 DVD+R DVD+RW 1 DVD-R 2 DVD-R DVD-RW USB 2.0 High-Speed IEEE 1394 DVD-RAM R/RW DVD LDR-MA16FU2/WM 11 DVD CD DVD 16 DVD DVD+R DVD+RW DVD-R DVD-RW DVD DVD DVD PC DVD 2 DVD+R

More information

API-PAC(W32)RM/AIO

API-PAC(W32)RM/AIO PC-MODULE / PC-HELPER API-PAC(W32) AIO http://www.contec.co.jp/ http://www.contec.com/ http://www.contec.com.cn/ PDF / ( ) E-mail(tsc@contec.co.jp) FAX E-mail Question FAX Question FAX Question API-PAC(W32)RM/AIO

More information

ICD-SX78/SX88

ICD-SX78/SX88 VCCIB 2 ...2...5...6...9... 10 1:... 15... 16 2:... 18 3... 20... 22... 25 VOR... 26... 27... 28 2... 29... 30... 31... 32... 33... 35 DPC... 35 A-B... 36... 36... 37... 39 1... 39... 39 3 4... 40... 41...

More information

2008 DS T050049

2008 DS T050049 DS T050049. PSP DS DS DS RPG DS OS Windows XP DevkiPro OS DS CPU ARM devkitarm MSYS MinGW MSYS MinGW Unix OS C++ C++ make nds nds DS DS micro SD Card nds DS DS DS nds C Java C++ nds nds DS 2008 DS T050049

More information

インテル® VTune™ パフォーマンス・アナライザー 9.1 Windows* 版

インテル® VTune™ パフォーマンス・アナライザー 9.1 Windows* 版 VTune 9.1 Windows* ................................. 3...................... 3.................................................. 3............................................ 4 :.........................4................................................

More information

untitled

untitled AWG-50 Rev 6.5 1 4 2 5 3 5 4 6 4.1 6 4.2 6 4.3 7 4.4 7 4.5 8 4.6 8 4.7 8 4.8 9 5 CD-ROM 10 6 11 6.1 11 6.1.1 Windows 10 11 6.1.2 Windows 8 8.1 12 6.1.3 Windows 7 13 6.1.4 Windows Vista 14 6.1.5 Windows

More information

はじめての帳票作成

はじめての帳票作成 ucosminexus EUR 3020-7-532 OS Windows Vista Windows XP P-26D2-5684 ucosminexus EUR Designer 08-00 P-26D2-5784 ucosminexus EUR Developer 08-00 ISO9001 TickIT Microsoft Microsoft Corp. Microsoft Excel Microsoft

More information

fp.gby

fp.gby 1 1 2 2 3 2 4 5 6 7 8 9 10 11 Haskell 12 13 Haskell 14 15 ( ) 16 ) 30 17 static 18 (IORef) 19 20 OK NG 21 Haskell (+) :: Num a => a -> a -> a sort :: Ord a => [a] -> [a] delete :: Eq a => a -> [a] -> [a]

More information

インストールマニュアル

インストールマニュアル EPSON OPOS ADK (1) (2) (3) (4) (5) (3) Microsoft Windows Windows Vista Windows Server Visual Basic Visual C++ EPSON ESC/POS Bluetooth Bluetooth SIG,Inc. Copyright 2000-2017 Seiko Epson Corporation 1...1

More information

本機をお使いの方へ

本機をお使いの方へ MA46H/S Windows 98 / NT 4.0 Windows 98 / NT 4.0 MA46H/S BIOS 1999 10 808-877675-132-A 3 AT 6. 1. BIOS P.7 1. Windows 98 Windows Windows 98 Microsoft Windows 98 Windows NT 4.0 Microsoft Windows NT Workstation

More information

CSV ToDo ToDo

CSV ToDo ToDo intra-mart ver4.0 2003/05/02 1. ( 10 imode ConceptBase imode CSV ToDo ToDo 2. intra-mart ver4.0 Java Sun JDK1.3.1 WebServerConnector Java DDL intra-mart intra-mart Java OS (1 Web Web intra-mart 2 Sun ONE

More information

wireshark dissector with lua

wireshark dissector with lua 2013/06/05 @team_eririn https://www.ainoniwa.net/ssp/ Lua プラグインを用いて Wireshark にデコード可能なプロトコルを追加する手法について記載します 今回は ネットワークベンチマークソフトウェアである iperf パケットを題材にします 2 OS Windows XP, Vista, 7 Wireshark Version : 1.6.x

More information

r03.dvi

r03.dvi 19 ( ) 019.4.0 CS 1 (comand line arguments) Unix./a.out aa bbb ccc ( ) C main void... argc argv argc ( ) argv (C char ) ( 1) argc 4 argv NULL. / a. o u t \0 a a \0 b b b \0 c c c \0 1: // argdemo1.c ---

More information

User's Guide

User's Guide magicolor 2300 DL 1800687-014B magicolor 2300 DL Windows TCP/IP Web URL http://www.minolta-qms.co.jp/support/userreg/index.html QMS MINOLTA-QMS magicolor MINOLTA-QMS, Inc. Minolta Peerless Systems Corporation

More information

MSAC-EX1

MSAC-EX1 3-218-418-02 (1) ExpressCard MSAC-EX1 b 2 MSAC-EX1 3 Program 2007 Sony Corporation Documentation 2007 Sony Corporation Memory Stick MagicGate Memory Stick Memory Stick Duo MagicGate Memory Stick Duo Memory

More information

For_Beginners_CAPL.indd

For_Beginners_CAPL.indd CAPL Vector Japan Co., Ltd. 目次 1 CAPL 03 2 CAPL 03 3 CAPL 03 4 CAPL 04 4.1 CAPL 4.2 CAPL 4.3 07 5 CAPL 08 5.1 CANoe 5.2 CANalyzer 6 CAPL 10 7 CAPL 11 7.1 CAPL 7.2 CAPL 7.3 CAPL 7.4 CAPL 16 7.5 18 8 CAPL

More information

Creative Sound Blaster Digital Music Creative Technology Ltd. Creative Technology Ltd. 1 CD Copyright 2003 Creative Technology Ltd. All rights reserved. 2003 3 1 Sound Blaster Creative Technology Ltd.

More information

DVD...j.b.g.n.[.h.E.F.A.}.j...A...p65

DVD...j.b.g.n.[.h.E.F.A.}.j...A...p65 DVD DVD LDR-PNA885U2 DVD-RAM LDR-PCA880U2 DVD-RAM -2- LDR-PNA885U2 LDR-PNA885U2 DVD-RAM DVD+R 2 DVD+R DVD+RW 1 DVD-R DVD-RW USB 2.0 High-Speed DVD-RAM R/RW DVD LDR-PNA885U2 10 DVD-RAM 5 DVD CD DVD DVD+R

More information

5 1 2 3 4 5 6 7 8 9 10 11 12 1 132 CMOS Setup Utility - Copyright (C) 1984-2000 Award Software Power Management Setup ACPI Suspend Type S3 (STR) Power Management User Define Video Off Method DPMS Video

More information

ohp03.dvi

ohp03.dvi 19 3 ( ) 2019.4.20 CS 1 (comand line arguments) Unix./a.out aa bbb ccc ( ) C main void int main(int argc, char *argv[]) {... 2 (2) argc argv argc ( ) argv (C char ) ( 1) argc 4 argv NULL. / a. o u t \0

More information

BPC-0821 Help for Windows

BPC-0821 Help for Windows IFMEM4G.WIN BPC-0821 Windows 用メモリアクセスツール Help for Windows www.interface.co.jp 目次 第 1 章はじめに 2 1.1 概要...2 1.2 特長...2 第 2 章製品仕様 3 2.1 基本仕様...3 2.2 製品構成...3 第 3 章導入方法 4 3.1 インストール手順...4 3.2 実行手順...4 第 4 章リファレンス

More information

waylandを動かす

waylandを動かす wayland nozzy@debian.or.jp 2013 11 16 2013 11 16 1/31 wayland! weston! wayland weston wayland Kristian Høgsberg 2013 11 16 2/31 wayland! weston! 2013 11 16 3/31 weston ( ) 2013 11 16 4/31 weston (weston.ini

More information

i ii iii iv v vi vii ( ー ー ) ( ) ( ) ( ) ( ) ー ( ) ( ) ー ー ( ) ( ) ( ) ( ) ( ) 13 202 24122783 3622316 (1) (2) (3) (4) 2483 (1) (2) (3) (4) (5) (6) (7) (8) (9) (10) (11) 11 11 2483 13

More information

XML ( ) XML XML jedit XML XPath XSLT jedit JAVA VM jedit Slava Pestov GNU GPL ( ) jedit jedit ( jedit XML jed

XML ( ) XML XML jedit XML XPath XSLT jedit JAVA VM jedit Slava Pestov GNU GPL ( ) jedit jedit (  jedit XML jed XML XML XML jedit XML XPath XSLT jedit JAVA VM jedit Slava Pestov GNU GPL ( jedit jedit (http://www.jedit.org/index.php jedit XML jedit Plugin Central (http://plugins.jedit.org/ jedit Java (Java VM = Java

More information

,,.,,., II,,,.,,.,.,,,.,,,.,, II i

,,.,,., II,,,.,,.,.,,,.,,,.,, II i 12 Load Dispersion Methods in Thin Client Systems 1010405 2001 2 5 ,,.,,., II,,,.,,.,.,,,.,,,.,, II i Abstract Load Dispersion Methods in Thin Client Systems Noritaka TAKEUCHI Server Based Computing by

More information

1 122

1 122 6 1 2 3 4 5 6 1 122 PhoenixBIOS Setup Utility MainAdvancedSecurityPowerExit MainSystem DevicesSecurityBootExit System Time: [XX:XX:XX] [XX:XX:XX] System Date: [XX/XX/XX] [XX/XX/XXXX] Item Specific Help

More information

JIIAセミナー

JIIAセミナー Digital Interface IIDC URL teli.co.jp/ E-Mail http://www.toshiba-teli.co.jp teli.co.jp/ s-itokawa@toshiba-teli.co.jpteli.co.jp EIA,NTSC EIA,NTSC 4-5 JIIA JIIA - / Digital Interface Digital Interface IEEE1394

More information

DVD-±R/RWユニット ハードウェアマニュアル

DVD-±R/RWユニット ハードウェアマニュアル LDR-CA160U2_HARD V01 USB 2.0 DVD R/RW LDR-CA160U2... 4... 5... 7... 9... 10... 14... 16... 18... 19... 24... 25... 27 DOS/VOADG(*1)DOS/V (*1)OADG PC (OADG URL http://www.oadg.or.jp/) - 1 - DVD R/RW DVD

More information

WinDriver v11.70 ユーザーズ ガイド

WinDriver v11.70 ユーザーズ ガイド JUNGO CONNECTIVITY LTD. WinDriver ユーザーズガイド エクセルソフト株式会社 JUNGO CONNECTIVITY LTD. COPYRIGHT Copyright (c) 2015 Jungo Connectivity Ltd. All Rigths Reserved. Jungo Connectivity Ltd. 1st. Hamachshev street,

More information

FX-DS110-CFC

FX-DS110-CFC LAN-HELPER LAN(2.4GHz) FLEXLAN-DS110 CF CARD CF CF CF 3.3V 3.3V CF ( 0~50) ( 10~90RH ( )) ( ) ( ) 1 2 3 2. 4 D S 4 2.4GHz DS-SS 40m B (VCCI) B MSMicrosoftWindowsWindows NTMS-DOS Microsoft Corporation Netscape

More information

ja:Products:USB-3-Hard-Drive:Printable · User Manuals

ja:Products:USB-3-Hard-Drive:Printable · User Manuals : 07-21-2010 USB 3.0 USB 3.0 SuperSpeed USB 3.0 LaCie : LaCie Hard Disk USB 3.0 (USB 2.0 1.1 ) USB ( ) ( ) : PDF : 1 ユーサ ーマニュアル LaCie http://www.lacie.jp/external/index.html web : USB 3.0 USB 3.0 USB 3.0

More information

262014 3 1 1 6 3 2 198810 2/ 198810 2 1 3 4 http://www.pref.hiroshima.lg.jp/site/monjokan/ 1... 1... 1... 2... 2... 4... 5... 9... 9... 10... 10... 10... 10... 13 2... 13 3... 15... 15... 15... 16 4...

More information

strtok-count.eps

strtok-count.eps IoT FPGA 2016/12/1 IoT FPGA 200MHz 32 ASCII PCI Express FPGA OpenCL (Volvox) Volvox CPU 10 1 IoT (Internet of Things) 2020 208 [1] IoT IoT HTTP JSON ( Python Ruby) IoT IoT IoT (Hadoop [2] ) AI (Artificial

More information

Microsoft Word - DT-5100Lib_Manual_DotNet.doc

Microsoft Word - DT-5100Lib_Manual_DotNet.doc CASSIOPEIA DT-5100 シリーズ.NET ライブラリマニュアル 概要編 Ver 3.00 変更履歴 No Revision 更新日項改訂内容 1 1.00 03/1/20 初版初版発行 2 3.00 05/03/15 3 カシオライブラリマニュアル (.NET) 開発マニュアルの 1~4 をひとまとめ にしました 4 5 6 7 8 9 10 11 12 13 14 15 16 17

More information