如何解决NtQueryInformationProcess 返回 STATUS_ACCESS_VIOLATION
当我调用驱动程序加载的函数时,一切正常,但是 当我从 dll 调用函数时,我得到 STATUS_ACCESS_VIOLATION
我尝试将建筑物复制到位于驱动程序中的新建筑物,但仍然没有帮助
这里是代码先试试
processinformation = ExAllocatePool(NonPagedPool,args->ProcessinformationLength);
if (!processinformation) {
ObDereferenceObject(process);
return STATUS_INSUFFICIENT_RESOURCES;
}
KeAttachProcess((PKPROCESS)process);
KeEnterCriticalRegion();
KPROCESSOR_MODE prevIoUsMode = KeSetPrevIoUsMode(KernelMode);
status = NtQueryinformationProcess(
NtCurrentProcess(),args->ProcessinformationClass,processinformation,args->ProcessinformationLength,&returnLength
);
KeSetPrevIoUsMode(prevIoUsMode);
KeLeaveCriticalRegion();
KeDetachProcess();
ObDereferenceObject(process);
这是第二次尝试
processinformation = ExAllocatePool(NonPagedPool,args->ProcessinformationLength);
if (!processinformation) {
ObDereferenceObject(process);
return STATUS_INSUFFICIENT_RESOURCES;
}
KeAttachProcess((PKPROCESS)process);
KeEnterCriticalRegion();
KPROCESSOR_MODE prevIoUsMode = KeSetPrevIoUsMode(KernelMode);
status = NtQueryinformationProcess(
NtCurrentProcess(),ProcessBasicinformation,sizeof(PROCESS_BASIC_informatION),&returnLength
);
KeSetPrevIoUsMode(prevIoUsMode);
KeLeaveCriticalRegion();
KeDetachProcess();
ObDereferenceObject(process);
有人知道如何帮助我
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。