能力值:
( LV9,RANK:280 )
|
-
-
2 楼
难道打开的不是同一个内核对象?
|
能力值:
( LV2,RANK:10 )
|
-
-
3 楼
hzqst
难道打开的不是同一个内核对象?
是打开的同一个“设备内核对象”,但文件对象是一个socket一个,这个文件对象的名字应该也不能重复吧
|
能力值:
( LV2,RANK:10 )
|
-
-
4 楼
类似于磁盘文件,比如“\\Device\\Harddisk0\\Partition0\\Windows\\Explorer.exe”, "\\Device\\Harddisk0\\Partition0"是设备对象(唯一),"\\Windows\\Explorer.exe"是文件对象名。“
\\Device\\Afd\\Endpoint”中,Afd.sys中创建的设备对象是“
\Device\\Afd”,“\\Endpoint”应该是具体socket文件的文件对象名。
|
能力值:
( LV9,RANK:280 )
|
-
-
5 楼
leolee嗷嗷
类似于磁盘文件,比如“\\Device\\Harddisk0\\Partition0\\Windows\\Explorer.exe”, "\\Device\\Harddisk0\\Parti ...
应该是可以重名的,我记得nt的文件对象是没有不许重名的要求的,文件名不许重复是文件系统自己规定的。
最后于 2018-10-21 09:51
被hzqst编辑
,原因:
|
能力值:
( LV2,RANK:10 )
|
-
-
6 楼
hzqst
leolee嗷嗷
类似于磁盘文件,比如“\\Device\\Harddisk0\\Partition0\\Windows\\Explorer.exe”, &q ...
我怎么感觉这跟重不重名没啥关系, 而是 : 一个"有名的玩意" 能不能被多次打开. 这个问题类似于如果不指定独占参数, 为啥C:\1.txt 能被A.exe打开, 又能同时被B.exe打开, 还能同时被C.exe打开......
|
能力值:
( LV2,RANK:10 )
|
-
-
7 楼
tsoo
我怎么感觉这跟重不重名没啥关系, 而是 : 一个"有名的玩意" 能不能被多次打开.
这个问题类似于如果不指定独占参数, 为啥C:\1.txt 能被A.exe打开, 又能同 ...
然后楼主似乎是想在驱动中, 通过 c:\1.txt这个名字 , 去得到某次CreateFile返回的特定的句柄....
|
能力值:
( LV9,RANK:280 )
|
-
-
8 楼
tsoo
我怎么感觉这跟重不重名没啥关系, 而是 : 一个"有名的玩意" 能不能被多次打开.
这个问题类似于如果不指定独占参数, 为啥C:\1.txt 能被A.exe打开, 又能同 ...
我也不知道楼主想表达什么 在驱动里面打开socket是想干嘛。。。不是有wsk??
|
能力值:
( LV2,RANK:10 )
|
-
-
9 楼
其实也没刻意要做什么,只是最近在梳理Windows中socket相关知识,想了解下socket到底和磁盘文件有什么区别,所以在期间看到创建socket其实是创建的“Device\\Afd\\Endpoint”,“\Endpoint”是文件对象名。不明白这个文件对象名有什么意义。 现在好像明白了,文件对象FILE_OBJECT和handle其实只是文件的某个上下文的io管理器层表示。 磁盘文件可以创建可以打开,会同时有多个上下文,所以他的FILE_OBJECT可以重名。socket其实只是临时内存数据结构,没有打开只有创建,IRP_MJ_CREATE处理函数也就没有像磁盘文件那样需要查找是否有同名文件已创建。所以socket的
FILE_OBJECT 中文件名重不重复都没有意义。
最后于 2018-10-31 09:35
被leolee嗷嗷编辑
,原因:
|
|
|