__security_init_cookie
更新 : 2007 年 11 月
グローバル セキュリティ Cookie を初期化します。
void __security_init_cookie(void);
解説
グローバル セキュリティ Cookie は、/GS (バッファのセキュリティ チェック) でコンパイルされるコード、および例外処理を使用するコードで、バッファ オーバーランの保護に使用されます。原則的に、オーバーランを保護する関数の入り口で Cookie がスタックに配置され、出口でスタックの値がグローバル Cookie と比較されます。2 つの Cookie が異なる場合、バッファ オーバーランが発生したため、プログラムが直ちに終了されることを示します。
通常、__security_init_cookie は起動時に CRT で呼び出されます。CRT の初期化を省略する場合 (たとえば、DLL を記述して /ENTRY でエントリ ポイントを指定する場合など)、__security_init_cookie を手動で呼び出す必要があります。
オーバーランを保護する関数を入力する前に、__security_init_cookie を呼び出す必要があります。それ以外の場合、誤ってバッファ オーバーランが検出されます。詳細については、「C ランタイム エラー R6035」を参照してください。
使用例
「C ランタイム エラー R6035」の例を参照してください。
必要条件
ルーチン |
必須ヘッダー |
---|---|
__security_init_cookie |
<process.h> |
互換性の詳細については、「C ランタイム ライブラリ」の「互換性」を参照してください。
.NET Framework の相当するアイテム
適用できません。この関数は、マネージ コードではなく、ネイティブ コードからのみ呼び出されます。