首次利用api函式createfile獲得裝置控制代碼時,應該會對第乙個引數
lpfilename的值比較困惑。
handle createfile(
lpctstr lpfilename, // 檔名/裝置路徑 裝置的名稱
dword dwdesiredaccess, // 訪問方式
dword dwsharemode, // 共享方式
lpsecurity_attributes lpsecurityattributes, // 安全描述符指標
dword dwcreationdisposition, // 建立方式
dword dwflagsandattributes, // 檔案屬性及標誌
handle htemplatefile // 模板檔案的控制代碼
);
在windows 2000中,裝置的名稱有兩個用途。
第乙個用途,裝置命名後,其它核心模式部件可以通過呼叫iogetdeviceobjectpointer函式找到該裝置,找到裝置物件後,就可以向該裝置的驅動程式傳送irp。
另乙個用途,允許應用程式開啟命名裝置的控制代碼,這樣它們就可以向驅動程式傳送irp。應用程式可以使用標準的createfile api開啟命名裝置控制代碼,然後用readfile、writefile,和deviceiocontrol向驅動程式發出請求。
通常裝置物件的名字放到\device目錄中,以"\device\[裝置名]」形式命名的。例如磁碟分割槽的c盤的裝置名稱就是"\device\harddiskvolume1」。
應用程式開啟裝置控制代碼時使用
\\.\
路徑字首而不是標準的unc(統一命名約定)名稱。
因此程式中形式固定為「\\.\
devicename
」(程式中注意新增轉義字元
),devicename必須與裝置驅動程式內定義的裝置名稱一致。
例如:裝置名稱\device\neo_neoadapter_vpn1_device,在程式中傳參是l"\\\\.\\
neo_neoadapter_vpn1_device"。
winobj可以用來檢視裝置名稱。
相關介紹:在表示檔案路徑的表示上
windows 系統用: \ (比如 c:\windows\system32\win.exe)
linux 和 unix 系統用: / (比如:/home/user )
在網頁上用: / (比如:
setTimeout 第乙個引數
今天有人在群裡問settimeout第一次引數為字串的時候為什麼會報錯,如下 function display obj 報obj is not defined。經過我自己測試了列子,自己總結出了幾個結論,真實性有待考證。下面講講我的例子與結論。首先,settimeout的第乙個引數分為3類,1.字串...
python第乙個程式設計 第乙個 Python 程式
簡述 安裝完 python 後,windows 中 開始選單或安裝目錄下就會有 idle 開發 python 程式的基本 ide 整合開發環境 幫助手冊 模組文件等。linux 中 只需要在命令列中輸入 python 命令即可啟動互動式程式設計。互動式程式設計 互動式程式設計不需要建立指令碼檔案,是...
第乙個部落格
我不知道為什麼 我在csdn上創了乙個賬號,又開通了部落格。也許我不是名人,也許幻想著成為名人。在這裡 我不會給任何人許諾,這個部落格可能有乙個博文 有兩個博文 或者會有很多 很多 很多。不過讓我有個大膽的猜想,如果這個部落格在今後有很多很多自己寫的博文,說明我成功了 在自己眼裡 也說明這個方法時正...