freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

windows982000驅(qū)動程序編寫方法-在線瀏覽

2024-08-27 18:54本頁面
  

【正文】 31 現(xiàn)代微機原理與接口技術(shù) 32 現(xiàn)代微機原理與接口技術(shù) 33 現(xiàn)代微機原理與接口技術(shù) 34 現(xiàn)代微機原理與接口技術(shù) 35 現(xiàn)代微機原理與接口技術(shù) 36 現(xiàn)代微機原理與接口技術(shù) 37 下面我們來修改有關(guān)代碼,以便增加驅(qū)動程序和應(yīng)用程序之間相互通信的內(nèi)容。 b. 使用 IO控制代碼方式分別從驅(qū)動程序讀入字符和 向驅(qū)動程序?qū)懽址? 注意 :程序中 暗紅色顯示的部分 是我們添加或修改過的語句,其他是 DriverWorks自動生成的。 2)完成應(yīng)用程序和驅(qū)動程序之間的信息交換 現(xiàn)代微機原理與接口技術(shù) 38 a. 使用 Read和 Write方式分別讀寫 void SampleDevice::SerialRead(KIrp I) { t Entering SampleDevice::SerialRead, I EOL。 PUCHAR pBuffer = (PUCHAR) ()。 // Requested read size char buff[512]。 for (int i=0。 i++, j=(j + 1)%26) { buff[i] = 39。 + j。 //指定串尾 strcpy((char *)pBuffer,buff)。 // 輸出調(diào)試信息 ULONG dwBytesRead = strlen(buff)。 // 返回給應(yīng)用程序的信息的字節(jié)個數(shù) () = status。 } 現(xiàn)代微機原理與接口技術(shù) 39 void SampleDevice::SerialWrite(KIrp I) { t Entering SampleDevice::SerialWrite, I EOL。 PUCHAR pBuffer = (PUCHAR)()。// 獲得應(yīng)用程序?qū)懡o驅(qū)動程序的信息的字節(jié)數(shù)。 char buff[512]。 // 應(yīng)用程序?qū)懡o驅(qū)動程序的數(shù)據(jù)在()返回的指針中。\039。 () = dwBytesSent。 (I)。 ULONG nRead。 buf = (char *) malloc(n)。 Exit(1)。 ReadFile(hDevice, buf, n, amp。 // 參數(shù)分別是設(shè)備句柄、輸入緩沖地址、緩沖大?。ㄗ止?jié)數(shù))、實際讀的數(shù)據(jù)字節(jié)數(shù)、覆蓋結(jié)構(gòu)指針。 // Print what was read while(i nRead) { // j = min((i+26),n)。 i j。 // } // printf(\n)。 } printf(\n)。 } 這幾句刪除 現(xiàn)代微機原理與接口技術(shù) 42 void doWrite(int n) // 向驅(qū)動程序中寫數(shù)據(jù) { char *buf。 int i, j。 if (buf == NULL) { printf(Failed to allocate buffer for write)。 } // start with the mod26 letter of the number of bytes to write j = (n % 26)。 in。a39。 } 現(xiàn)代微機原理與接口技術(shù) 43 // Write data to driver printf(Writing to device )。nWritten, NULL)。 printf(%d bytes written to device (%d attempted).\n, nWritten, n)。 // Print what was written while(i n) { j = min((i+26),n)。 i j。 } printf(\n)。 } 現(xiàn)代微機原理與接口技術(shù) 44 b. 使用 IO控制代碼方式分別讀寫 NTSTATUS SampleDevice::SAMPLE_IOCTL_Read_Handler(KIrp I) { // 對應(yīng)用程序讀驅(qū)動程序的請求作響應(yīng) NTSTATUS status = STATUS_SUCCESS。 char buff1[512]。 strcpy(buff1,Wele to driver!)。 if (() = fwLength) {// 如果讀入緩沖夠長 strcpy((PCHAR)(),buff1)。 // 返回信息長度 } else { () = 0。 } return status。 t Entering SampleDevice :: SAMPLE_IOCTL_Write_Handler , I EOL。 ULONG fwLength=0。 // 拷貝從應(yīng)用程序得到的命令串到驅(qū)動程序局部數(shù)據(jù)區(qū) t “InputPut Data is \”“ buff ”\“” EOL。 () = 0。 } 現(xiàn)代微機原理與接口技術(shù) 46 void Test_SAMPLE_IOCTL_Read(void) { CHAR bufInput[IOC
點擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1