Поделиться через


Глобальные переменные ядра Windows

Глобальные переменные ядра.

Переменная Объявление Описание
Mm64BitPhysicalAddress PBOOLEAN Mm64BitPhysicalAddress

Объявлено в Wdm.h

Указывает, поддерживает ли оборудование и операционная система 64-разрядные физические адреса. Указывает на значение TRUE , если оборудование и операционная система поддерживают 64-разрядные физические адреса, в противном случае значение FALSE .

Дополнительные сведения об использовании этой переменной в драйвере см. в статье Выполнение DMA в 64-разрядной версии Windows.

MmBadPointer PVOID MmBadPointer;

Объявлено в Wdm.h

Указатель на расположение памяти, которое гарантированно является недопустимым.

Примечание Начиная с Windows 8.1, MmBadPointer является нерекомендуемой. Драйверы должны использовать вместо него макрос MM_BAD_POINTER .

Операционная система создает ошибку проверка, если осуществляется доступ к адресу памяти, указанному переменной MmBadPointer.

Для отладки кода драйвера можно использовать MmBadPointer . Задайте для всех неинициализированных переменных указателя значение MmBadPointer , чтобы найти первый раз, когда код пытается разыменовать недопустимый указатель.

Все адреса в PAGE_SIZE MmBadPointer гарантированно будут недопустимыми. Например, если Адрес является указателем, а MmBadPointer< = Адрес<MmBadPointer + PAGE_SIZE, попытка доступа к *Address приводит к тому, что операционная система создаст ошибку проверка. 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 .

По возможности приложение должно использовать Юникод вместо кодовых страниц.

EPROCESS
GetCPInfoEx
MM_BAD_POINTER
Выполнение DMA в 64-разрядной версии Windows