1

win32file.CreateFile()プロセスエクスプローラーに表示される「ファイル」を開くために使用しています。問題のファイルは (proc エクスプローラーのハンドルと dll ビューで見られるように) : "\Device\ccSet_{}" です。

Q1. 誰でも何が何であるかを明らかにできますか\Device\<file name>。これらは明らかに、ハードディスクのどこかに保存されているファイルではないと思います。私が間違っていなければ、それらは何ですか?

Q2. でパスをそのまま使用しようとすると、win32file.CreateFile()「指定されたパスまたはファイルが見つかりません」というエラーが表示されます。どこが間違っているのですか。

Q3. 上記のファイル オブジェクトのアドレス (再度 proc Explorer から) が与えられた場合、パスを指定せずにファイルを読み取ることはできますか?

私が使用している1行のコードは次のとおりです。

>>> 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)
4

1 に答える 1

4
  1. \Device\XXX 名は、内部の Windows NT デバイス名です。
  2. プレフィックスは、Win32 ファイルの\\.\名前空間ではなく、Win32 デバイスの名前空間にアクセスします。たとえば、COM10 を開くには、\\.\COM10.
  3. ハンドルは、それを開いたプロセス内でのみ有効です。
于 2012-07-23T23:19:42.717 に答える