jjw
jjw
驱动牛犊
驱动牛犊
  • 注册日期2001-11-01
  • 最后登录2008-11-05
  • 粉丝0
  • 关注0
  • 积分-6分
  • 威望5点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
20楼#
发布于:2004-11-30 19:12
顶一下
jjw
doctor.big
驱动牛犊
驱动牛犊
  • 注册日期2004-05-27
  • 最后登录2006-05-22
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
21楼#
发布于:2004-10-14 09:32
重入方面的问题呢?加一个全局开关量解决?
satanli1982
驱动牛犊
驱动牛犊
  • 注册日期2004-03-07
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分7分
  • 威望3点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
22楼#
发布于:2004-10-03 19:49
学习ing
tooflat
论坛版主
论坛版主
  • 注册日期2002-07-08
  • 最后登录2014-03-11
  • 粉丝2
  • 关注0
  • 积分1007分
  • 威望551点
  • 贡献值3点
  • 好评度476点
  • 原创分0分
  • 专家分0分
23楼#
发布于:2004-09-22 13:40
tooflat:正确的做法是构造自己的mdl,替换irp中的,然后ioCallDriver,在
完成例程中再恢复原来的mdl,总之不要修改原来的缓冲区!!!!

问一个问题:我是按照你所说的来做,在FAT32下能正常工作,但在
NTFS下出现错误,请指点一下


你给的错误信息太少了,是蓝屏还是什么?具体的蓝屏信息又是什么?
能把代码片断贴上来吗?
syx1991
驱动牛犊
驱动牛犊
  • 注册日期2002-03-12
  • 最后登录2009-09-04
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望2点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
24楼#
发布于:2004-09-22 10:11
tooflat:正确的做法是构造自己的mdl,替换irp中的,然后ioCallDriver,在
完成例程中再恢复原来的mdl,总之不要修改原来的缓冲区!!!!

问一个问题:我是按照你所说的来做,在FAT32下能正常工作,但在
NTFS下出现错误,请指点一下
tooflat
论坛版主
论坛版主
  • 注册日期2002-07-08
  • 最后登录2014-03-11
  • 粉丝2
  • 关注0
  • 积分1007分
  • 威望551点
  • 贡献值3点
  • 好评度476点
  • 原创分0分
  • 专家分0分
25楼#
发布于:2004-09-21 16:18
d.把MyBuf Copy到 SysDataBuf,

e.IoCallDriver 把密文向下传,写入HardDisk。

f.恢复内存的明文 RtlCopyMemory(SysDataBuf,SysDataBufFirst, ulWriteLen);.

这几步好像有个小小的问题,就是如果读请求在e和f之间进行的话,读到的数据可能是密文,因为你的步骤f太迟了
正确的做法是构造自己的mdl,替换irp中的,然后ioCallDriver,在
完成例程中再恢复原来的mdl,总之不要修改原来的缓冲区!!!!
bluacat
驱动小牛
驱动小牛
  • 注册日期2004-09-13
  • 最后登录2016-09-25
  • 粉丝0
  • 关注0
  • 积分1023分
  • 威望277点
  • 贡献值0点
  • 好评度146点
  • 原创分0分
  • 专家分0分
  • 社区居民
26楼#
发布于:2004-09-16 15:36
OSR上看来的;):)
nustzhua
驱动中牛
驱动中牛
  • 注册日期2002-06-19
  • 最后登录2015-09-27
  • 粉丝0
  • 关注0
  • 积分18分
  • 威望2点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
27楼#
发布于:2004-09-16 14:21
这个不错,有点眼熟,就是不知道从哪儿来的?

[编辑 -  9/16/04 by  nustzhua]
不限容量的免费邮箱 www.k65.net
nustzhua
驱动中牛
驱动中牛
  • 注册日期2002-06-19
  • 最后登录2015-09-27
  • 粉丝0
  • 关注0
  • 积分18分
  • 威望2点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
28楼#
发布于:2004-09-16 14:19
这个不错,有点眼熟,就是不知道从哪儿来的?
不限容量的免费邮箱 www.k65.net
bluacat
驱动小牛
驱动小牛
  • 注册日期2004-09-13
  • 最后登录2016-09-25
  • 粉丝0
  • 关注0
  • 积分1023分
  • 威望277点
  • 贡献值0点
  • 好评度146点
  • 原创分0分
  • 专家分0分
  • 社区居民
29楼#
发布于:2004-09-16 09:38
再仍一块砖头:
如何从IrpStackLocation中判断来自网络的文件访问?

//---------------------------------------------------
NTSTATUS status;

PACCESS_TOKEN pToken = NULL;
PTOKEN_SOURCE pTokenSrc = NULL ;
PSECURITY_SUBJECT_CONTEXT secSubCtx;


secSubCtx = &(IrpSp->Parameters.Create.SecurityContext->AccessState->SubjectSecurityContext);

if (secSubCtx->ClientToken != NULL || secSubCtx->PrimaryToken != NULL)
{
pToken = SeQuerySubjectContextToken(secSubCtx);
}

if (pToken == NULL)
{
//KdPrint(("SeQuerySubjectContextToken Error\n"));
return 0
}

//
// Get TokenSource Name If SourceName is "NtLmSsp" it was logged-in via Lanmanager,
// "User32" represents localy logged-in users.
//
__try
{

status = SeQueryInformationToken(pToken,TokenSource,&pTokenSrc);

if (NT_SUCCESS(status))
{
pTokenSrc->SourceName[TOKEN_SOURCE_LENGTH-1] = 0x00;

KdPrint(("Token Name :%s Len:%d\n",pTokenSrc->SourceName,strlen(pTokenSrc->SourceName)));

if (_stricmp(pTokenSrc->SourceName,"NtLmSsp") == 0 )
{
KdPrint(("NetWork Access Token Find\n"));
return 123
}

}
else
{
KdPrint(("SeQueryInformationToken Error:0x%x\n",status));
}
}
__finally
{
ExFreePool(pTokenSrc);
}


return 0
nustzhua
驱动中牛
驱动中牛
  • 注册日期2002-06-19
  • 最后登录2015-09-27
  • 粉丝0
  • 关注0
  • 积分18分
  • 威望2点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
30楼#
发布于:2004-09-16 09:16
[quote]基本上是这样子的。
不过有很多的细节要处理

请说具体点,哪些细节要处理??? [/quote]
你不是举出了一个例子么?

不限容量的免费邮箱 www.k65.net
deltali
驱动小牛
驱动小牛
  • 注册日期2002-10-25
  • 最后登录2010-07-06
  • 粉丝0
  • 关注0
  • 积分2分
  • 威望23点
  • 贡献值0点
  • 好评度11点
  • 原创分0分
  • 专家分0分
31楼#
发布于:2004-09-14 22:53
先谢谢总结先!

另外:
读和写都有工作需要在IoCallDriver后进行,又不是在完成例程中进行。是不是把所有的读写irp都弄成同步的了?
如果是的话,IRP_PAGING_IO|IRP_SYNCHRONOUS_PAGING_IO好像都是同步i/o,问题不大,但是IRP_NOCACHE可能是异步的,如果都改成同步处理的话,会不会有什么影响?比如性能?
谢谢!
我又来了,生命不息,驱动不止。
wowocock
VIP专家组
VIP专家组
  • 注册日期2002-04-08
  • 最后登录2016-01-09
  • 粉丝16
  • 关注2
  • 积分601分
  • 威望1651点
  • 贡献值1点
  • 好评度1227点
  • 原创分1分
  • 专家分0分
32楼#
发布于:2004-09-14 21:23
基本上是这样子的。
不过有很多的细节要处理

请说具体点,哪些细节要处理???
花开了,然后又会凋零,星星是璀璨的,可那光芒也会消失。在这样 一瞬间,人降生了,笑者,哭着,战斗,伤害,喜悦,悲伤憎恶,爱。一切都只是刹那间的邂逅,而最后都要归入死亡的永眠
wowocock
VIP专家组
VIP专家组
  • 注册日期2002-04-08
  • 最后登录2016-01-09
  • 粉丝16
  • 关注2
  • 积分601分
  • 威望1651点
  • 贡献值1点
  • 好评度1227点
  • 原创分1分
  • 专家分0分
33楼#
发布于:2004-09-14 21:21
对所有文件都可以吗??没问题吗??那些OFFICE的都没问题???
花开了,然后又会凋零,星星是璀璨的,可那光芒也会消失。在这样 一瞬间,人降生了,笑者,哭着,战斗,伤害,喜悦,悲伤憎恶,爱。一切都只是刹那间的邂逅,而最后都要归入死亡的永眠
nustzhua
驱动中牛
驱动中牛
  • 注册日期2002-06-19
  • 最后登录2015-09-27
  • 粉丝0
  • 关注0
  • 积分18分
  • 威望2点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
34楼#
发布于:2004-09-14 21:18
基本上是这样子的。
不过有很多的细节要处理
不限容量的免费邮箱 www.k65.net
上一页 下一页
游客

返回顶部