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