數(shù)控木工雕刻機(jī)的數(shù)控系統(tǒng)的USB驅(qū)動(dòng)程序的編寫(xiě),采用Mitmsoft公司的Windows2000DDK.并以VC++6.0作為輔助開(kāi)發(fā)環(huán)境。其中USB主控制器驅(qū)動(dòng)程序和USB總線驅(qū)動(dòng)程序封裝在Windows操作系統(tǒng)內(nèi),由Microsoft公司提供,開(kāi)發(fā)者只要編寫(xiě)數(shù)控木工雕刻機(jī)的數(shù)控系統(tǒng)的USB設(shè)備驅(qū)動(dòng)程序,。USB設(shè)備驅(qū)動(dòng)程序并不與硬件對(duì)話,需使用USB總線驅(qū)動(dòng)程序接口(USBDI)和硬件設(shè)備進(jìn)行通信,。USBDI是WDM分層結(jié)構(gòu)的一部分,提供了USB設(shè)備驅(qū)動(dòng)程序訪問(wèn)USB主機(jī)驅(qū)動(dòng)程序棧的接口,I/O請(qǐng)求包(IRP)是驅(qū)動(dòng)程序操作的核心,。IRP是一個(gè)內(nèi)核對(duì)象,它是一個(gè)預(yù)先定義的數(shù)據(jù)結(jié)構(gòu),帶有一組對(duì)它進(jìn)行操作的I/O管理器例程,USBDI使用IRP管理USB設(shè)備驅(qū)動(dòng)程序和USB主機(jī)驅(qū)動(dòng)程序棧之間的通信,。這些IRP,、具有相同的主功能代碼IRP_MJ_INTERNAL_DEVICE_CONTROL,且其下一個(gè)I/O棧單元的Parameters.DeviceIoContro.lIoControlCode字段設(shè)置為USBI的內(nèi)部IOCTL,以指明該IRP所實(shí)現(xiàn)的具體功能,。通過(guò)調(diào)用IoBuildDeviceIoControlRequest函數(shù)實(shí)現(xiàn)IOCTL和IOCTLIRP,。其中最主要的是IOCTL_INTERNAL_USB_SUB_SUBMIT_URB,它發(fā)出USB請(qǐng)求塊(URB)由USB類(lèi)驅(qū)動(dòng)程序處理。