亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

蟲蟲首頁| 資源下載| 資源專輯| 精品軟件
登錄| 注冊

程序存儲

  • 驅動程序與應用程序的接口

    有兩種方式可以讓設備和應用程序之間聯系:1. 通過為設備創建的一個符號鏈;2. 通過輸出到一個接口WDM驅動程序建議使用輸出到一個接口而不推薦使用創建符號鏈的方法。這個接口保證PDO的安全,也保證安全地創建一個惟一的、獨立于語言的訪問設備的方法。一個應用程序使用Win32APIs來調用設備。在某個Win32 APIs和設備對象的分發函數之間存在一個映射關系。獲得對設備對象訪問的第一步就是打開一個設備對象的句柄。 用符號鏈打開一個設備的句柄為了打開一個設備,應用程序需要使用CreateFile。如果該設備有一個符號鏈出口,應用程序可以用下面這個例子的形式打開句柄:hDevice = CreateFile("\\\\.\\OMNIPORT3",  GENERIC_READ | GENERIC_WRITE,FILE_SHARE_READ,  NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL ,NULL);文件路徑名的前綴“\\.\”告訴系統本調用希望打開一個設備。這個設備必須有一個符號鏈,以便應用程序能夠打開它。有關細節查看有關Kdevice和CreateLink的內容。在上述調用中第一個參數中前綴后的部分就是這個符號鏈的名字。注意:CreatFile中的第一個參數不是Windows 98/2000中驅動程序(.sys文件)的路徑。是到設備對象的符號鏈。如果使用DriverWizard產生驅動程序,它通常使用類KunitizedName來構成設備的符號鏈。這意味著符號鏈名有一個附加的數字,通常是0。例如:如果鏈接名稱的主干是L“TestDevice”那么在CreateFile中的串就該是“\\\\.\\TestDevice0”。如果應用程序需要被覆蓋的I/O,第六個參數(Flags)必須或上FILE_FLAG_OVERLAPPED。 使用一個輸出接口打開句柄用這種方式打開一個句柄會稍微麻煩一些。DriverWorks庫提供兩個助手類來使獲得對該接口的訪問容易一些,這兩個類是CDeviceInterface, 和 CdeviceInterfaceClass。CdeviceInterfaceClass類封裝了一個設備信息集,該信息集包含了特殊類中的所有設備接口信息。應用程序能有用CdeviceInterfaceClass類的一個實例來獲得一個或更多的CdeviceInterface類的實例。CdeviceInterface類是一個單一設備接口的抽象。它的成員函數DevicePath()返回一個路徑名的指針,該指針可以在CreateFile中使用來打開設備。下面用一個小例子來顯示這些類最基本的使用方法:extern GUID TestGuid;HANDLE OpenByInterface(  GUID* pClassGuid,  DWORD instance,  PDWORD pError){  CDeviceInterfaceClass DevClass(pClassGuid, pError);  if (*pError != ERROR_SUCCESS)    return INVALID_HANDLE_VALUE;  CDeviceInterface DevInterface(&DevClass, instance, pError);  if (*pError != ERROR_SUCCESS)    return INVALID_HANDLE_VALUE;  cout << "The device path is "    << DevInterface.DevicePath()    << endl;   HANDLE hDev;  hDev = CreateFile(   DevInterface.DevicePath(),    GENERIC_READ | GENERIC_WRITE,    FILE_SHARE_READ | FILE_SHARE_WRITE,    NULL,    OPEN_EXISTING,    FILE_ATTRIBUTE_NORMAL,    NULL  );  if (hDev == INVALID_HANDLE_VALUE)    *pError = GetLastError();  return hDev;} 在設備中執行I/O操作一旦應用程序獲得一個有效的設備句柄,它就能使用Win32 APIs來產生到設備對象的IRPs。下面的表顯示了這種對應關系。Win32 API  DRIVER_FUNCTION_xxxIRP_MJ_xxx  KDevice subclass member function CreateFile  CREATE  Create ReadFile  READ  Read WriteFile  WRITE  Write DeviceIoControl  DEVICE_CONTROL  DeviceControl CloseHandle  CLOSECLEANUP  CloseCleanUp 需要解釋一下設備類成員的Close和CleanUp:CreateFile使內核為設備創建一個新的文件對象。這使得多個句柄可以映射同一個文件對象。當這個文件對象的最后一個用戶級句柄被撤銷后,I/O管理器調用CleanUp。當沒有任何用戶級和核心級的對文件對象的訪問的時候,I/O管理器調用Close。如果被打開的設備不支持指定的功能,則調用相應的Win32將引起錯誤(無效功能)。以前為Windows95編寫的VxD的應用程序代碼中可能會在打開設備的時候使用FILE_FLAG_DELETE_ON_CLOSE屬性。在Windows NT/2000中,建議不要使用這個屬性,因為它將導致沒有特權的用戶企圖打開這個設備,這是不可能成功的。I/O管理器將ReadFile和WriteFile的buff參數轉換成IRP域的方法依賴于設備對象的屬性。當設備設置DO_DIRECT_IO標志,I/O管理器將buff鎖住在存儲器中,并且創建了一個存儲在IRP中的MDL域。一個設備可以通過調用Kirp::Mdl來存取MDL。當設備設置DO_BUFFERED_IO標志,設備對象分別通過KIrp::BufferedReadDest或 KIrp::BufferedWriteSource為讀或寫操作獲得buff地址。當設備不設置DO_BUFFERED_IO標志也不設置DO_DIRECT_IO,內核設置IRP 的UserBuffer域來對應ReadFile或WriteFile中的buff參數。然而,存儲區并沒有被鎖住而且地址只對調用進程有效。驅動程序可以使用KIrp::UserBuffer來存取IRP域。對于DeviceIoControl調用,buffer參數的轉換依賴于特殊的I/O控制代碼,它不在設備對象的特性中。宏CTL_CODE(在winioctl.h中定義)用來構造控制代碼。這個宏的其中一個參數指明緩沖方法是METHOD_BUFFERED, METHOD_IN_DIRECT, METHOD_OUT_DIRECT, 或METHOD_NEITHER。下面的表顯示了這些方法和與之對應的能獲得輸入緩沖與輸出緩沖的KIrp中的成員函數:Method  Input Buffer Parameter  Output Buffer Parameter METHOD_BUFFERED  KIrp::IoctlBuffer KIrp::IoctlBuffer METHOD_IN_DIRECT  KIrp::IoctlBuffer KIrp::Mdl METHOD_OUT_DIRECT  KIrp::IoctlBuffer KIrp::Mdl METHOD_NEITHER  KIrp::IoctlType3InputBuffer KIrp::UserBuffer 如果控制代碼指明METHOD_BUFFERED,系統分配一個單一的緩沖來作為輸入與輸出。驅動程序必須在向輸出緩沖放數據之前拷貝輸入數據。驅動程序通過調用KIrp::IoctlBuffer獲得緩沖地址。在完成時,I/O管理器從系統緩沖拷貝數據到提供給Ring 3級調用者使用的緩沖中。驅動程序必須在結束前存儲拷貝到IRP的Information成員中的數據個數。如果控制代碼不指明METHOD_IN_DIRECT或METHOD_OUT_DIRECT,則DeviceIoControl的參數呈現不同的含義。參數InputBuffer被拷貝到一個系統緩沖,這個緩沖驅動程序可以通過調用KIrp::IoctlBuffer。參數OutputBuffer被映射到KMemory對象,驅動程序對這個對象的訪問通過調用KIrp::Mdl來實現。對于METHOD_OUT_DIRECT,調用者必須有對緩沖的寫訪問權限。注意,對METHOD_NEITHER,內核只提供虛擬地址;它不會做映射來配置緩沖。虛擬地址只對調用進程有效。這里是一個用METHOD_BUFFERED的例子:首先,使用宏CTL_CODE來定義一個IOCTL代碼:#define IOCTL_MYDEV_GET_FIRMWARE_REV \CTL_CODE (FILE_DEVICE_UNKNOWN,0,METHOD_BUFFERED,FILE_ANY_ACCESS)現在使用一個DeviceIoControl調用:BOOLEAN b;CHAR FirmwareRev[60];ULONG FirmwareRevSize;b = DeviceIoControl(hDevice, IOCTL_MYDEV_GET_VERSION_STRING,  NULL, // no input  注意,這里放的是包含有執行操作命令的字符串指針  0, FirmwareRev,      //這里是output串指針,存放從驅動程序中返回的字符串。sizeof(FirmwareRev),& FirmwareRevSize,  NULL // not overlapped I/O );如果輸出緩沖足夠大,設備拷貝串到里面并將拷貝的資結束設置到FirmwareRevSize中。在驅動程序中,代碼看起來如下所示:const char* FIRMWARE_REV = "FW 16.33 v5";NTSTATUS MyDevice::DeviceControl( KIrp I ){  ULONG fwLength=0;  switch ( I.IoctlCode() )  {    case IOCTL_MYDEV_GET_FIRMWARE_REV:      fwLength = strlen(FIRMWARE_REV)+1;      if (I.IoctlOutputBufferSize() >= fwLength)      {        strcpy((PCHAR)I.IoctlBuffer(),FIRMWARE_REV);        I.Information() = fwLength;         return I.Complete(STATUS_SUCCESS);      }      else      {              }    case . . .   } }

    標簽: 驅動程序 應用程序 接口

    上傳時間: 2013-10-17

    上傳用戶:gai928943

  • rs232串口通信程序下載

    主要功能:1、將串口通訊協議存儲為一個通訊文件,可是隨時將存儲通訊協議文件調入計算機運行與下位機通訊可以實現通訊對話,供下位機工程師參考使用,其主要的通訊協議本程序把它們分成四種情況。以下說明:1)下位機直接發送數據,上位機只接收不回應數據。2)下位機直接發送數據,上位機接收并回應數據。3)上位機直接發送數據,下位機只接收不回應數據。4)上位機直接發送數據,下位機接收并回應數據。下位機工程師完全可以利用這個功能單獨的并且很方便的調試與上位機通訊程序,更改雙方的通訊協議,不再需要上位機工程師的配合。windwos標準操作,使用方便。2、可以監聽活動串口的數據,將監聽到的數據顯示到數據顯示區里面,可以保存。也可以將原先保存的文件數據讀進來,以供分析。數據可以按照十六進制和ascii碼顯示出來。3、自動識別串口設置,當不知道對方設備的通訊串口設置時,可以利用該功能讓此程序自動識別,當然前提是對方設備必須是一直在發數據,整個識別過程大概需要二分鐘。4、可以通過該程序,利用串口將文件發送到另一個計算機上。另一個計算機通過接收文件接收所發出的文件。

    標簽: 232 rs 串口通信

    上傳時間: 2013-11-11

    上傳用戶:semi1981

  • 如何編寫應用程序與USB HID設備通訊

      我們如果想實現一個USB 的HID 類設備,不需要在Windows 下開發自己的驅動程序。HID不一定要是標準的外設類型,唯一的要求是交換的數據存儲在報文的結構內,設備固件必須支持報文的格式。任何工作在該限制之內的設備都可以成為一個HID,例如溫度計、電壓計、讀卡機等。報文的格式是由報告描述符決定的,所以只要修改描述符就能實現我們需要的報文格式。下面我們來實現一個簡單的報文格式:上位機發送固定64 字節數據給設備,這個數據可以是命令,也可是數據,具體含義并不是由報告描述符來決定的,是由開發人員事先約定好的。設備返回的數據也是64 個字節,同樣這個數據流的每個字節(甚至每個位)的具體含義由開發人員事先約定好。

    標簽: USB HID 編寫 應用程序

    上傳時間: 2013-12-05

    上傳用戶:xinyuzhiqiwuwu

  • 存儲卡格式PMC的轉換

    通過存儲卡備份的 PMC 稱之為存儲卡格式的PMC。由于其為機器語言格式,不能由計算機直接識別和讀取并進行修改和編輯,所以必須進行格式轉換。同理,當在計算機上編輯好的PMC 程序也不能直接存儲到M-CARD 上,然后裝載到CNC 中,也必須通過格式轉換。

    標簽: PMC 存儲卡 轉換

    上傳時間: 2013-11-17

    上傳用戶:13160677563

  • 基于云計算的海量圖片存儲管理系統研究

        隨著網絡信息容量的膨脹,如何高效地存儲和管理海量圖片數據,傳統的數據管理技術難以滿足這些應用所提出的對數據管理的需求。針對云計算應用的特點和需求,借鑒傳統數據管理技術的理念,提出了一種基于CouchDB的高可擴展、高可靠的海量圖片存儲管理系統。系統采用分布式文件系統、分布式數據庫等技術,支持海量數據存儲、資源目錄和交換體系以及并行程序處理,可提供從數據到處理功能的一體化服務。實驗證明,本系統具有可行性,能滿足空間信息服務的多種需求。

    標簽: 云計算 海量 存儲管理 系統研究

    上傳時間: 2013-11-22

    上傳用戶:lacsx

  • 簡介: 采用了靜態的HTML作為新聞存儲的格式

    簡介: 采用了靜態的HTML作為新聞存儲的格式,先進的全文檢索技術, 可視化的新聞發布界面 管理程序為admin/index.jsp,默認的管理員為admin(password:admin888), 編輯為: edit(password:edit888)

    標簽: HTML 新聞 存儲

    上傳時間: 2014-12-08

    上傳用戶:chens000

  • 本程序在turboc 2.0中運行 輸入表達式

    本程序在turboc 2.0中運行 輸入表達式,并計算出表達式的值 采用二叉樹存儲方法,計算速度比較快

    標簽: turboc 2.0 程序 運行

    上傳時間: 2015-01-10

    上傳用戶:pkkkkp

  • 棧(stack)是程序設計過程中經常遇到朝氣一種數據結構形式

    棧(stack)是程序設計過程中經常遇到朝氣一種數據結構形式,它對于數據的存放和操作有下面這樣的特點: 1) 它只有一個對數據進行存入和取出的端口; 2) 后進者先出,即最后被存入的數據將首先被取出。其形式很象一種存儲硬幣的小容器,每次只可以從頂端壓入一個硬幣,而取出也只可以從頂端進行,即后進先出。 這樣的數據存儲和管理形式在一些程序設計中很有用。例如,編譯系統中(這是一類比較復雜的程序),對于函數調用的處理、對于表達式計算的處理,都利用了棧這樣的數據結構。

    標簽: stack 數據結構 程序設計

    上傳時間: 2013-12-03

    上傳用戶:225588

  • 文件系統管理 在內存中為文件開辟存儲空間 可以創建文件和文件夾 (至少有兩級目錄 :模擬DOS文件系統的操作 可以存儲文件的內容 可以查看刪除和修改文件(15 2

    文件系統管理 在內存中為文件開辟存儲空間 可以創建文件和文件夾 (至少有兩級目錄 :模擬DOS文件系統的操作 可以存儲文件的內容 可以查看刪除和修改文件(15 2,系統設計功能:根據題目要求設計程序功能 考核內容:( 1,功能設計方面:功能設計是否全面,有無遺漏 2,完成功能設計算法方面:算法是否有效,算法的難易程度 3,運算演示方面:設計程序能否運行,運行時是否每一種情況都考慮 4,程序設計報告內容:程序功能,程序模塊結構,流程圖,源程序清單 5,教師質疑

    標簽: DOS 文件系統 15 內存

    上傳時間: 2014-01-07

    上傳用戶:Amygdala

  • 方舟網免費空間申請程序(自助建站系統) v3.0 1 界面美觀 2 后臺管理功能強大:A 可以設置多種參數

    方舟網免費空間申請程序(自助建站系統) v3.0 1 界面美觀 2 后臺管理功能強大:A 可以設置多種參數,比如注冊時需要填寫什么,哪些不需要填寫。這些都可以自主選擇。B 開通方式選擇:可以選擇郵件通知,可以選擇即時開通,也可以選擇管理員審核。C 用戶管理:可以增,刪,改用戶。也可以修改用戶的權限。D可以修改系統參數,管理方便。 3 系統數據庫在www.99081.com文件夾下的data.mdb里。密碼采用加密存儲。 管理員賬號:99081 密碼:11111 后管登陸:99081 密碼:

    標簽: 3.0 程序 后臺 參數

    上傳時間: 2015-01-11

    上傳用戶:z1191176801

亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲欧洲一级| 久久久久88色偷偷免费| 欧美视频一区二区| 欧美激情视频在线播放| 欧美va亚洲va香蕉在线| 欧美成人国产va精品日本一级| 久久国内精品自在自线400部| 亚洲欧洲av一区二区三区久久| 亚洲天堂成人在线观看| 亚洲在线成人| 午夜精品成人在线| 欧美在线视频不卡| 久久网站热最新地址| 欧美va亚洲va香蕉在线| 欧美视频中文字幕在线| 国产精品美女xx| 国产亚洲福利一区| 国内外成人免费激情在线视频网站 | 欧美日韩精品二区| 国产精品激情| 激情综合五月天| 亚洲乱码日产精品bd| 一区二区三区四区国产| 欧美亚洲系列| 麻豆精品网站| 国产精品久久久久久久一区探花| 国产日韩欧美a| 亚洲精品乱码久久久久久| 一区二区三区www| 欧美在线观看www| 欧美精品乱码久久久久久按摩| 国产精品国产三级国产普通话蜜臀| 国产农村妇女毛片精品久久麻豆| 亚洲国产高清在线| 亚洲女人天堂av| 国产伦精品一区二区三区免费迷 | 欧美午夜影院| 激情综合色丁香一区二区| 亚洲国产视频一区| 99精品欧美一区二区三区综合在线 | 欧美日本高清一区| 国产一区二区三区在线免费观看| 亚洲人成7777| 久久久精品动漫| 欧美色中文字幕| 亚洲黄色性网站| 欧美一区2区视频在线观看| 欧美成人性网| 国产日产亚洲精品| 国产精品99久久久久久有的能看| 久久伊人一区二区| 国产美女精品一区二区三区| 日韩视频在线观看国产| 美国成人直播| 极品日韩av| 性8sex亚洲区入口| 欧美色偷偷大香| 久久欧美中文字幕| 国产精品久久久久久久电影| 亚洲人成7777| 麻豆精品91| 136国产福利精品导航网址应用| 欧美一区二区三区在线| 欧美性色视频在线| 99国产精品一区| 女人天堂亚洲aⅴ在线观看| 国产在线精品一区二区中文 | 老鸭窝毛片一区二区三区| 国产精品视频久久| 亚洲午夜一区二区| 欧美视频网址| 正在播放亚洲| 欧美性猛交99久久久久99按摩| 亚洲三级观看| 欧美精品一卡| 日韩视频国产视频| 欧美日韩免费精品| 一区二区三区四区在线| 欧美日韩国产不卡| 夜夜嗨av一区二区三区四季av| 欧美精品国产精品| 亚洲最新合集| 国产精品ⅴa在线观看h| 中日韩在线视频| 国产精品青草综合久久久久99 | 亚洲午夜三级在线| 国产精品女主播在线观看| 亚洲视频在线观看免费| 国产精品久久国产精品99gif| 亚洲国产日本| 欧美一区二区三区四区高清| 欧美午夜精品久久久久久孕妇 | 国内精品久久久久伊人av| 久久精品国产亚洲精品| 樱桃国产成人精品视频| 欧美~级网站不卡| 亚洲美女网站| 国产精品久久国产愉拍| 午夜精品999| 精品av久久707| 久久aⅴ国产欧美74aaa| 国产精品一卡二卡| 亚洲国产中文字幕在线观看| 欧美国产精品一区| 亚洲网友自拍| 黄色亚洲在线| 欧美日韩国产页| 久久九九热re6这里有精品| 亚洲欧美自拍偷拍| 亚洲国产一区二区三区a毛片| 欧美日韩精品国产| 欧美亚洲视频在线观看| 18成人免费观看视频| 欧美日韩一区二区三区在线视频| 亚洲欧美成aⅴ人在线观看| 一区在线视频观看| 欧美日韩另类综合| 久久国产88| 中文欧美日韩| 欧美高清在线| 羞羞色国产精品| 亚洲美女尤物影院| 国产一在线精品一区在线观看| 欧美大学生性色视频| 午夜精品成人在线| 亚洲精品国产视频| 国产主播喷水一区二区| 欧美日韩一区二区精品| 久久久久久香蕉网| 亚洲一区自拍| 最新成人av在线| 国产一区再线| 国产精品久在线观看| 欧美成人一区二区三区在线观看| 性做久久久久久久久| 一本一本久久a久久精品综合麻豆| 国产综合精品| 国产精品丝袜久久久久久app| 米奇777在线欧美播放| 亚洲欧美日韩精品在线| 亚洲欧洲精品一区二区三区 | 国产视频精品va久久久久久| 欧美精品18| 麻豆av福利av久久av| 欧美一级专区| 亚洲欧美卡通另类91av| 一区二区久久| 日韩视频永久免费| 亚洲国产日韩在线| 在线观看日韩专区| 国产一区成人| 国产欧美一区二区色老头| 欧美三级电影一区| 欧美区二区三区| 欧美精品在线看| 欧美大胆成人| 免费在线播放第一区高清av| 久久精品水蜜桃av综合天堂| 亚洲婷婷国产精品电影人久久| 亚洲娇小video精品| 国产毛片一区| 国产欧美日韩精品一区| 国产精品爽黄69| 欧美性淫爽ww久久久久无| 欧美精品一区二区三区视频| 欧美**人妖| 欧美国产激情二区三区| 欧美成人精品三级在线观看| 久久亚裔精品欧美| 麻豆精品传媒视频| 欧美高清在线精品一区| 欧美福利小视频| 欧美另类亚洲| 国产精品久久久久久久久动漫| 欧美网站大全在线观看| 欧美三级在线视频| 国产精品久久久久av| 国产精品一卡二卡| 国模精品一区二区三区色天香| 国产在线观看精品一区二区三区| 国内精品视频久久| 亚洲国产欧美日韩另类综合| 亚洲激情小视频| 亚洲欧洲日本国产| 亚洲乱亚洲高清| 亚洲香蕉视频| 久久国产主播| 女人天堂亚洲aⅴ在线观看| 欧美精品七区| 亚洲国产精品一区制服丝袜| 亚洲国产导航| 午夜精品一区二区三区四区| 另类春色校园亚洲| 国产九九精品视频| 亚洲美女中出| 久久深夜福利免费观看| 国产精品扒开腿爽爽爽视频| 在线成人小视频| 欧美一区二区三区精品| 欧美另类一区二区三区|