共用方式為


Windows 核心全域變數

核心全域變數。

變數 宣告 Description
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 變數所指定的記憶體位址。

您可以使用 MmBadPointer 對驅動程式程式代碼進行偵錯。 將任何未初始化的指標變數設定為 MmBadPointer ,以尋找程式代碼第一次嘗試取值無效指標的時間。

MmBadPointer PAGE_SIZE內的所有地址都保證無效。 例如,如果 Address 是指針,如果 MmBadPointer= Address<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_TAGTRUE,而單一位元組代碼頁則為 FALSE

NLS_MB_CODE_PAGE_TAG保留供系統使用。 請改為從使用者模式呼叫 GetCPInfoEx

可能的話,您的應用程式應該使用 Unicode 而非代碼頁。

EPROCESS
GetCPInfoEx
MM_BAD_POINTER
在 64 位 Windows 中執行 DMA