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 変数で指定されたメモリ アドレスへのアクセスがあると、オペレーティング システムによってバグ チェックが生成されます。

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;

コード ページが 1 バイト コード ページであるかマルチバイト コード ページであるかを指定します。

マルチバイト コード ページであれば NLS_MB_CODE_PAGE_TAGTRUE、1 バイト コード ページであれば FALSE です。

NLS_MB_CODE_PAGE_TAG は、システムで使用するために予約されています。 ユーザー モードから、代わりに GetCPInfoEx を呼び出します。

可能であれば、アプリケーションではコード ページではなく Unicode を使用します。

EPROCESS
GetCPInfoEx
MM_BAD_POINTER
64 ビットの Windows での DMA の実行