一些名词的意思老是忘,干脆记个笔记。
本人英语水平一般,有错误欢迎指出
起源是这段代码,第一次看的时候,什么鬼,文件和堆栈有什么关系
我想知道,什么是基于堆栈的文件对象?
它就是这么说的。它回到了一个不同的时代(当时NT应该在64Mb内存中启动吗?)并且计算了周期。
不管怎样,它们应该在Vista中被删除(但没有),但从那以后我就没见过。
我的建议是添加代码——以防万一,当下一代人认为这是一种巫术时,
这类东西就会悄然而回。在调试器中强制执行该路径一次。
当然,除非你手边有一台XP机器。
来源:652K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6U0L8$3#2E0N6h3&6A6N6s2W2Q4x3X3g2G2M7%4u0Q4x3X3g2U0L8$3#2Q4x3V1k6V1K9i4y4U0N6i4y4K6K9h3!0F1i4K6u0r3j5$3!0E0L8h3g2F1N6q4)9J5c8U0t1^5x3o6V1#2x3g2)9J5x3@1y4G2L8h3#2W2L8Y4c8Q4y4h3j5J5z5o6l9&6y4e0p5`.
ennnnnnn
解释看起来天方夜谭,大概的意思就是一个不支持的东西。
无脑跳过就行了。
我又搜了搜,看到一个
如果调用位于堆栈上的FO(系统/内部FO), GetFileNameInformation可能崩溃。
也就是这个不跳过这个基于堆栈的文件对象,
可能会在调用GetFileNameInformation时崩溃
来源:d60K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6U0L8$3#2E0N6h3&6A6N6s2W2Q4x3X3g2G2M7%4u0Q4x3X3g2U0L8$3#2Q4x3V1k6V1K9i4y4U0N6i4y4K6K9h3!0F1i4K6u0r3j5$3!0E0L8h3g2F1N6q4)9J5c8U0p5H3y4K6p5J5y4W2)9J5x3@1y4G2L8h3#2W2L8Y4c8Q4y4h3j5I4x3o6M7I4x3U0j5`.
IoGetStackLimits( &stackLow, &stackHigh );
if
(((ULONG_PTR)FileObject > stackLow) &&
((ULONG_PTR)FileObject < stackHigh)) {
return
FLT_PREOP_SUCCESS_NO_CALLBACK;
}
IoGetStackLimits( &stackLow, &stackHigh );
if
(((ULONG_PTR)FileObject > stackLow) &&
((ULONG_PTR)FileObject < stackHigh)) {
return
FLT_PREOP_SUCCESS_NO_CALLBACK;
}
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课