メジャー状態コードは、次の図に示すように、OM_uint32 に符号化されます。

GSS-API ルーチンが上位 16 ビットに 0 以外の値が入った GSS 状態コードを戻す場合、その呼び出しが失敗したことを示します。呼び出しエラーフィールドが 0 以外の場合、アプリケーションのルーチンの呼び出しにエラーがあったことを示します。表 B–1 に、「呼び出しエラー」のリストを示します。ルーチンエラーフィールドが 0 以外の場合、ルーチン固有のエラーのためにルーチンが失敗したことを示します。表 B–2 に、「ルーチン固有のエラー」のリストを示します。上位 16 ビットが失敗または成功のどちらを示すかにかかわらず、状態コードの補足情報フィールドのビットを設定できます。表 B–3 に、個々のビットの意味を示します。
次の表に、GSS-API が戻す呼び出しエラーのリストを示します。これらのエラーは、特定の言語バインディング (この場合は C) に固有です。
表 B–1 GSS-API の呼び出しエラー| エラー | フィールドの値 | 意味 | 
|---|---|---|
| GSS_S_CALL_INACCESSIBLE_READ | 1 | 要求された入力パラメータを読み取れません | 
| GSS_S_CALL_INACCESSIBLE_WRITE | 2 | 要求された出力パラメータに書き込めません | 
| GSS_S_CALL_BAD_STRUCTURE | 3 | パラメータの形式が間違っています | 
次の表に、GSS-API ルーチンエラー (GSS-API 関数が戻す一般的なエラー) のリストを示します。
表 B–2 GSS-API ルーチンエラー| エラー | フィールドの値 | 意味 | 
|---|---|---|
| GSS_S_BAD_MECH | 1 | 要求された機構がサポートされていません。 | 
| GSS_S_BAD_NAME | 2 | 提供された名前が無効です。 | 
| GSS_S_BAD_NAMETYPE | 3 | 提供された名前型がサポートされていません。 | 
| GSS_S_BAD_BINDINGS | 4 | 提供されたチャネルバインディングが間違っています。 | 
| GSS_S_BAD_STATUS | 5 | 提供された状態コードが無効です。 | 
| GSS_S_BAD_MIC, GSS_S_BAD_SIG | 6 | トークンが持っている MIC が無効です。 | 
| GSS_S_NO_CRED | 7 | 資格を使用またはアクセスできません。あるいは、資格が提供されていません。 | 
| GSS_S_NO_CONTEXT | 8 | コンテキストがまったく確立されていません。 | 
| GSS_S_DEFECTIVE_TOKEN | 9 | トークンが無効です。 | 
| GSS_S_DEFECTIVE_CREDENTIAL | 10 | 資格が無効です。 | 
| GSS_S_CREDENTIALS_EXPIRED | 11 | 参照された資格の有効期間が終了しています。 | 
| GSS_S_CONTEXT_EXPIRED | 12 | コンテキストの有効期間が終了しています。 | 
| GSS_S_FAILURE | 13 | その他のエラー。実際の機構によって、特定の GSS-API 状態コードが定義されていないエラーが検出されました。この場合、機構に固有の状態コード (マイナー状態コード) にエラーの詳細が示されます。 | 
| GSS_S_BAD_QOP | 14 | 要求された保護品質を提供できません。 | 
| GSS_S_UNAUTHORIZED | 15 | 当該操作はローカルのセキュリティーポリシーによって禁止されています。 | 
| GSS_S_UNAVAILABLE | 16 | 当該操作またはオプションは使用できません。 | 
| GSS_S_DUPLICATE_ELEMENT | 17 | 要求された資格要素はすでに存在しています。 | 
| GSS_S_NAME_NOT_MN | 18 | 提供された名前が機構名 (MN) ではありません。 | 
GSS_S_COMPLETE という名前は、値が 0 で、API エラーまたは補足情報ビットのどちらも存在しないことを示します。
次の表に、GSS-API 関数が戻す補足情報の値のリストを示します。
表 B–3 GSS-API 補足情報コード| コード | ビット番号 | 意味 | 
|---|---|---|
| GSS_S_CONTINUE_NEEDED | 0 (LSB) | gss_init_sec_context() または gss_accept_sec_context() だけが戻します。関数を完了させるには、もう一度ルーチンを呼び出す必要があることを示します。 | 
| GSS_S_DUPLICATE_TOKEN | 1 | トークンは以前のトークンの複製です。 | 
| GSS_S_OLD_TOKEN | 2 | トークンの有効期間が終了しています。 | 
| GSS_S_UNSEQ_TOKEN | 3 | 後方にあるトークンをすでに処理しています。 | 
| GSS_S_GAP_TOKEN | 4 | 期待していたメッセージ毎トークンを受信していません。 | 
状態コードの詳細は、「GSS-API 状態コード」を参照してください。
gss_display_status() 関数は、GSS-API 状態コードをテキスト形式に変換します。この形式を使用すると、コードをユーザーに表示したり、テキストログに格納したりできます。関数の中には複数の状態を戻すものもありますが、gss_display_status() 関数は 一度に 1 つの状態コードしか表示できません。このため、gss_display_status() をループの一部として呼び出す必要があります。gss_display_status() が 0 以外の状態コードを示すときは、関数は別の状態コードを取得できます。
OM_uint32 message_context;
OM_uint32 status_code;
OM_uint32 maj_status;
OM_uint32 min_status;
gss_buffer_desc status_string;
...
message_context = 0;
do {
     maj_status = gss_display_status(
               &min_status,
               status_code,
               GSS_C_GSS_CODE,
               GSS_C_NO_OID,
               &message_context,
               &status_string);
     fprintf(stderr, "%.*s\n", \
               (int)status_string.length, \
               (char *)status_string.value);
     gss_release_buffer(&min_status, &status_string,);
} while (message_context != 0);
マクロ GSS_CALLING_ERROR()、GSS_ROUTINE_ERROR ()、および GSS_SUPPLEMENTARY_INFO() は GSS 状態コードを受け取ります。これらのマクロは、関係のあるフィールド以外の情報をすべて削除します。たとえば、GSS_ROUTINE_ERROR() を状態コードに適用すると、呼び出しエラーフィールドと補足情報フィールドは削除されます。この操作では、ルーチンエラーフィールドのみが残ります。このようなマクロが提供する値は、適切な型の GSS_S_xxx シンボルと直接比較できます。また、マクロ GSS_ERROR() は、状態コードが呼び出しエラーまたはルーチンエラーを示す場合は 0 以外の値を戻し、そうでない場合は 0 を戻します。GSS-API で定義されるすべてのマクロは引数を 1 つだけしか受け取りません。