2012-07-23 332 views
0

我使用win32file.CreateFile()來打開我在進程管理器中看到的「文件」。 有問題的文件是(如proc explorer的句柄和dll視圖所示):「\ Device \ ccSet_ {}」win32file.createFile「系統找不到指定的路徑」

Q1。誰能說明什麼是\Device\<file name>。我相信這些顯然不是存儲在硬盤上的文件。除非我錯了,他們是什麼? Q2302。當我嘗試使用路徑原樣時,在win32file.CreateFile()中,它給我一個錯誤「系統找不到指定的路徑或文件」。我哪裏錯了。

Q3。給定上述文件對象的地址(同樣來自proc explorer),我可以在不指定路徑的情況下讀取文件嗎?

我在用的一行代碼是:

>>> win32file.CreateFile("Device\<filename>",w 
in32con.GENERIC_READ|win32con.GENERIC_WRITE,win32con.FILE_SHARE_READ|win32con.FI 
LE_SHARE_WRITE,None,win32con.OPEN_EXISTING,0,0) 

回答

3
  1. 對\ Device \ XXX名稱是內部的Windows NT設備名稱。
  2. \\.\前綴將訪問Win32設備名稱空間而不是Win32文件名稱空間。例如,要打開COM10,您需要使用\\.\COM10
  3. 該句柄只在打開它的過程中有效。
+0

「該句柄只在打開它的進程內有效」:是否只有在嘗試使用CreateFile()時該語句才爲真?我問這是因爲我能夠複製並關閉有問題的手柄。 – asudhak 2012-07-24 13:34:50

+0

事實上,'DuplicateHandle'可以用來解決這個限制。 – Neil 2012-07-25 00:05:38

相關問題