IsBadCodePtr 関数 (winbase.h)
呼び出し元プロセスが、指定したアドレスにあるメモリへの読み取りアクセス権を持っているかどうかを判断します。
大事な この関数は古く、使用しないでください。 その名前にもかかわらず、ポインターが有効であるか、指しているメモリが安全に使用できる保証はありません。 詳細については、このページの「備考」を参照してください。
構文
BOOL IsBadCodePtr(
[in] FARPROC lpfn
);
パラメーター
[in] lpfn
メモリ アドレスへのポインター。
戻り値
呼び出し元プロセスが指定したメモリへの読み取りアクセス権を持つ場合、戻り値は 0 になります。
呼び出し元プロセスが指定したメモリへの読み取りアクセス権を持たない場合、戻り値は 0 以外です。 詳細なエラー情報を得るには、GetLastError を呼び出します。
アプリケーションがデバッグ バージョンとしてコンパイルされ、プロセスが指定されたメモリ位置への読み取りアクセス権を持たない場合、関数はアサーションを実行し、デバッガーに分割します。 デバッガーを終了すると、関数は通常どおりに続行され、0 以外の値が返されます。 この動作は、デバッグの支援として設計されています。
注釈
プリエンプティブ マルチタスク環境では、他のスレッドがテスト対象のメモリへのプロセスのアクセスを変更できます。 関数が指定されたメモリへの読み取りアクセス権をプロセスに持っていることを示した場合でも、メモリへのアクセスを試みる場合は、構造化例外処理を使用する必要があります。 構造化例外処理を使用すると、システムはアクセス違反例外が発生した場合にプロセスに通知し、プロセスに例外を処理する機会を提供します。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows XP (デスクトップ アプリのみ) |
サポートされている最小のサーバー | Windows Server 2003 (デスクトップ アプリのみ) |
対象プラットフォーム | Windows |
ヘッダー | winbase.h (Windows.h を含む) |
Library | Kernel32.lib |
[DLL] | Kernel32.dll |