Windows 内核全局变量
内核全局变量。
变量 | 声明 | 说明 |
---|---|---|
Mm64BitPhysicalAddress | PBOOLEAN Mm64BitPhysicalAddress
在 Wdm.h 中声明 |
指定硬件和操作系统是否支持 64 位物理地址。 如果硬件和操作系统支持 64 位物理地址,则指向值为 TRUE ,否则为 FALSE 。 有关如何在驱动程序中使用此变量的详细信息,请参阅 在 64 位 Windows 中执行 DMA。 |
MmBadPointer | PVOID MmBadPointer;
在 Wdm.h 中声明 |
指向保证无效的内存位置的指针。
注意从 Windows 8.1 开始,MmBadPointer 已弃用。
驱动程序应改用 MM_BAD_POINTER 宏。
如果访问由 MmBadPointer 变量指定的内存地址,操作系统将生成一个 bug 检查。 可以使用 MmBadPointer 调试驱动程序代码。 将任何未初始化的指针变量设置为 MmBadPointer ,以查找代码首次尝试取消引用无效指针的时间。 MmBadPointer PAGE_SIZE中的所有地址都保证无效。 例如,如果 Address 是指针,并且 MmBadPointer<= Address<MmBadPointer + PAGE_SIZE,则尝试访问 *Address 会导致操作系统检查生成 bug。 MmBadPointer + PAGE_SIZE不保证无效。 |
PsInitialSystemProcess | PEPROCESS PsInitialSystemProcess;
在 Ntddk.h 中声明 |
指向系统进程的 EPROCESS 结构。 |
NLS_MB_CODE_PAGE_TAG | extern BOOLEAN NLS_MB_CODE_PAGE_TAG; |
指定代码页是单字节代码页还是多字节代码页。 对于多字节代码页,NLS_MB_CODE_PAGE_TAG为 TRUE,对于单字节代码页为 FALSE。 保留NLS_MB_CODE_PAGE_TAG供系统使用。 在用户模式下,请改为调用 GetCPInfoEx 。 如果可能,应用程序应使用 Unicode 而不是代码页。 |