读书人

落尽所有分数:关于函数的一些不明白有

发布时间: 2012-05-21 18:04:41 作者: rapoo

落尽所有分数::关于函数的一些不明白问题!!
就两个问题 如注释:

C/C++ code
//得到内核模块基址PMODULE_LIST GetKerModuAddr(HMODULE hNtdll){    ULONG NeededSize;    ULONG *ModuleListAddress=NULL;    NTSTATUS status;    PMODULE_LIST pml=NULL;NtQuerySystemInformation = (QSIPTR)GetProcAddress( hNtdll,  //这个函数网上看了 讲的不明白 第一次调用和下一次调用参数变化很大 网上也没说为什么 大多数都只列代码 望高手讲解下。        "NtQuerySystemInformation" );    NtQuerySystemInformation(SystemModuleInformation,&NeededSize,0,&NeededSize);    ModuleListAddress=(ULONG *)malloc(NeededSize);    if (!ModuleListAddress)    {                    return (PMODULE_LIST)ModuleListAddress;            }    status=    NtQuerySystemInformation(SystemModuleInformation,ModuleListAddress,NeededSize,0);    if (status!=0)    {        free(ModuleListAddress);                return NULL;    }    pml=(PMODULE_LIST)ModuleListAddress; //问题二:这个得到的模块列表 他把所有的模块都包含在这里了么?这个 在windows里有什么作用呢?  谢谢!!        return pml;}

感谢各位大侠不吝赐教,不胜感激!!

[解决办法]
Question2:你去MSDN看下malloc的用法就知道了
http://msdn.microsoft.com/zh-cn/library/64tkc9y5(VS.80).aspxGetProcAddress
http://msdn.microsoft.com/zh-cn/library/6ewkz86d(VS.80).aspxmalloc

读书人网 >C++

热点推荐