20楼#
发布于:2004-11-30 19:12
顶一下
|
|
|
21楼#
发布于:2004-10-14 09:32
重入方面的问题呢?加一个全局开关量解决?
|
|
22楼#
发布于:2004-10-03 19:49
学习ing
|
|
23楼#
发布于:2004-09-22 13:40
tooflat:正确的做法是构造自己的mdl,替换irp中的,然后ioCallDriver,在 你给的错误信息太少了,是蓝屏还是什么?具体的蓝屏信息又是什么? 能把代码片断贴上来吗? |
|
24楼#
发布于:2004-09-22 10:11
tooflat:正确的做法是构造自己的mdl,替换irp中的,然后ioCallDriver,在
完成例程中再恢复原来的mdl,总之不要修改原来的缓冲区!!!! 问一个问题:我是按照你所说的来做,在FAT32下能正常工作,但在 NTFS下出现错误,请指点一下 |
|
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,总之不要修改原来的缓冲区!!!! |
|
26楼#
发布于:2004-09-16 15:36
OSR上看来的;):)
|
|
27楼#
发布于:2004-09-16 14:21
这个不错,有点眼熟,就是不知道从哪儿来的?
[编辑 - 9/16/04 by nustzhua] |
|
|
28楼#
发布于:2004-09-16 14:19
这个不错,有点眼熟,就是不知道从哪儿来的?
|
|
|
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 |
|
30楼#
发布于:2004-09-16 09:16
[quote]基本上是这样子的。 请说具体点,哪些细节要处理??? [/quote] 你不是举出了一个例子么? |
|
|
31楼#
发布于:2004-09-14 22:53
先谢谢总结先!
另外: 读和写都有工作需要在IoCallDriver后进行,又不是在完成例程中进行。是不是把所有的读写irp都弄成同步的了? 如果是的话,IRP_PAGING_IO|IRP_SYNCHRONOUS_PAGING_IO好像都是同步i/o,问题不大,但是IRP_NOCACHE可能是异步的,如果都改成同步处理的话,会不会有什么影响?比如性能? 谢谢! |
|
|
32楼#
发布于:2004-09-14 21:23
基本上是这样子的。 请说具体点,哪些细节要处理??? |
|
|
33楼#
发布于:2004-09-14 21:21
对所有文件都可以吗??没问题吗??那些OFFICE的都没问题???
|
|
|
34楼#
发布于:2004-09-14 21:18
基本上是这样子的。
不过有很多的细节要处理 |
|
|
上一页
下一页