CreateFile第乙個引數裝置名稱

2021-07-13 13:34:04 字數 1439 閱讀 8404

首次利用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上創了乙個賬號,又開通了部落格。也許我不是名人,也許幻想著成為名人。在這裡 我不會給任何人許諾,這個部落格可能有乙個博文 有兩個博文 或者會有很多 很多 很多。不過讓我有個大膽的猜想,如果這個部落格在今後有很多很多自己寫的博文,說明我成功了 在自己眼裡 也說明這個方法時正...