@prefix schema: <https://schema.org/> .
@prefix skos: <http://www.w3.org/2004/02/skos/core#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix ks: <https://comcomponent.com/vocab/> .

<https://comcomponent.com/blog/windows-error-codes-win32-hresult-ntstatus/#article>
    schema:about <https://comcomponent.com/knowledge/hresult/>, <https://comcomponent.com/knowledge/win32-error-code/> ;
    schema:mentions <https://comcomponent.com/knowledge/ntstatus/>, <https://comcomponent.com/knowledge/last-error-code/>, <https://comcomponent.com/knowledge/hresult-facility/>, <https://comcomponent.com/knowledge/hresult-from-win32/>, <https://comcomponent.com/knowledge/e-fail/>, <https://comcomponent.com/knowledge/hresult-nt-bit/>, <https://comcomponent.com/knowledge/rtlntstatustodoserror/>, <https://comcomponent.com/knowledge/bug-check-code/>, <https://comcomponent.com/knowledge/status-access-violation/>, <https://comcomponent.com/knowledge/windows-event-log/>, <https://comcomponent.com/knowledge/procmon/>, <https://comcomponent.com/knowledge/hresult-exception-mapping/>, <https://comcomponent.com/knowledge/marshal-getlastwin32error/>, <https://comcomponent.com/knowledge/error-lookup-tool/>, <https://comcomponent.com/knowledge/certutil-error/>, <https://comcomponent.com/knowledge/windbg-error-command/>, <https://comcomponent.com/knowledge/windbg/>, <https://comcomponent.com/knowledge/ntstatus-to-win32-conversion/> .

<https://comcomponent.com/knowledge/hresult/> a skos:Concept ;
    skos:prefLabel "HRESULT"@ja ;
    skos:definition "COMの呼び出し結果を表す32ビットの符号付き整数のエラーコード体系で、.NETの例外はHRESULTに対応付けられてCOM側へ伝わる。"@ja ;
    ks:uses <https://comcomponent.com/knowledge/hresult-facility/> .

<https://comcomponent.com/knowledge/win32-error-code/> a skos:Concept ;
    skos:prefLabel "Win32エラーコード"@ja ;
    skos:definition "Win32 APIが失敗の詳細として返す0〜15999のシステムエラーコード。ERROR_ACCESS_DENIED(5)のようなシンボル名を持つ。"@ja ;
    ks:storedIn <https://comcomponent.com/knowledge/last-error-code/> ;
    ks:verifiedBy <https://comcomponent.com/knowledge/error-lookup-tool/> ;
    ks:verifiedBy <https://comcomponent.com/knowledge/certutil-error/> .

<https://comcomponent.com/knowledge/last-error-code/> a skos:Concept ;
    skos:prefLabel "最終エラーコード(GetLastError)"@ja ;
    skos:definition "スレッドごとに保持される直近のエラーコード。失敗を確認した直後にGetLastErrorで取得する。"@ja ;
    ks:verifiedBy <https://comcomponent.com/knowledge/marshal-getlastwin32error/> .

<https://comcomponent.com/knowledge/error-lookup-tool/> a skos:Concept ;
    skos:prefLabel "err.exe(Microsoft Error Lookup Tool)"@ja ;
    skos:definition "16進のステータスコードに関連付けられたメッセージテキストを、Winerror.hなど各種ヘッダーファイルを横断して表示する単体ツール。"@ja .

<https://comcomponent.com/knowledge/certutil-error/> a skos:Concept ;
    skos:prefLabel "certutil -error"@ja ;
    skos:definition "エラーコードに関連付けられたメッセージテキストを、シンボル名を含む形式で表示するWindows標準コマンドのオプション。"@ja .

<https://comcomponent.com/knowledge/hresult-facility/> a skos:Concept ;
    skos:prefLabel "HRESULTのFacility"@ja ;
    skos:definition "HRESULTのビット26〜16に置かれ、エラーの発生源を示す11bitのコード。FACILITY_NULL(0)・FACILITY_RPC(1)・FACILITY_ITF(4)・FACILITY_WIN32(7)・FACILITY_WINDOWS(8)などがある。"@ja .

<https://comcomponent.com/knowledge/hresult-from-win32/> a skos:Concept ;
    skos:prefLabel "HRESULT_FROM_WIN32"@ja ;
    skos:definition "Win32システムエラーコードをHRESULT値へマップするwinerror.hのマクロ。下位16bitにWin32エラーコード、FacilityにFACILITY_WIN32(7)、Sビットに1を設定する。"@ja ;
    ks:implements <https://comcomponent.com/knowledge/hresult-facility/> ;
    ks:inherits <https://comcomponent.com/knowledge/win32-error-code/> .

<https://comcomponent.com/knowledge/e-fail/> a skos:Concept ;
    skos:prefLabel "E_FAIL(0x80004005)"@ja ;
    skos:definition "FACILITY_NULLの汎用HRESULT。意味は「未指定の失敗(Unspecified failure)」で、それ以上の情報を持たない。"@ja ;
    ks:implements <https://comcomponent.com/knowledge/hresult-facility/> .

<https://comcomponent.com/knowledge/ntstatus/> a skos:Concept ;
    skos:prefLabel "NTSTATUS"@ja ;
    skos:definition "カーネル・デバイスドライバー・ntdllのネイティブAPIが使う32bitのステータスコード。上位2bitの重大度で成功・情報・警告・エラーを表す。"@ja ;
    ks:mayCause <https://comcomponent.com/knowledge/win32-error-code/> ;
    ks:notRecommendedFor <https://comcomponent.com/knowledge/bug-check-code/> ;
    ks:verifiedBy <https://comcomponent.com/knowledge/windbg-error-command/> .

<https://comcomponent.com/knowledge/rtlntstatustodoserror/> a skos:Concept ;
    skos:prefLabel "RtlNtStatusToDosError"@ja ;
    skos:definition "NTSTATUSコードを対応するWin32システムエラーコードへ変換するntdllの関数。対応が定義されていない場合はERROR_MR_MID_NOT_FOUNDを返す。"@ja ;
    ks:implements <https://comcomponent.com/knowledge/ntstatus-to-win32-conversion/> .

<https://comcomponent.com/knowledge/ntstatus-to-win32-conversion/> a skos:Concept ;
    skos:prefLabel "NTSTATUSからWin32エラーコードへの変換"@ja ;
    skos:definition "カーネル層のNTSTATUS値を対応するWin32システムエラーコードへ写像する変換。対応が定義されていない値はERROR_MR_MID_NOT_FOUNDに丸められる。"@ja .

<https://comcomponent.com/knowledge/hresult-nt-bit/> a skos:Concept ;
    skos:prefLabel "HRESULTのNビット(HRESULT_FROM_NT)"@ja ;
    skos:definition "HRESULTのビット28。1のとき、その値がNTSTATUSをHRESULT空間へマップしたものであることを示す。"@ja ;
    ks:inherits <https://comcomponent.com/knowledge/ntstatus/> .

<https://comcomponent.com/knowledge/status-access-violation/> a skos:Concept ;
    skos:prefLabel "STATUS_ACCESS_VIOLATION(0xC0000005)"@ja ;
    skos:definition "不正なメモリアクセスを示すNTSTATUS。アプリケーションクラッシュ時の例外コードとして頻出する。"@ja ;
    ks:implements <https://comcomponent.com/knowledge/ntstatus/> ;
    ks:verifiedBy <https://comcomponent.com/knowledge/windows-event-log/> .

<https://comcomponent.com/knowledge/windows-event-log/> a skos:Concept ;
    skos:prefLabel "Windowsイベントログ"@ja ;
    skos:definition "Application・System・Securityなどのログにアプリケーションやサービスの事象を記録し、イベントビューアーや監視ツールから運用担当者が確認できるWindows標準の記録機構。"@ja ;
    skos:altLabel "Windows Event Log" ;
    skos:altLabel "EventLog" .

<https://comcomponent.com/knowledge/bug-check-code/> a skos:Concept ;
    skos:prefLabel "バグチェックコード(STOPコード)"@ja ;
    skos:definition "ブルースクリーンに表示される停止理由のコード。NTSTATUSとは別の独自番号体系で、専用のリファレンスを引く。"@ja .

<https://comcomponent.com/knowledge/procmon/> a skos:Concept ;
    skos:prefLabel "Process Monitor(procmon.exe)"@ja ;
    skos:definition "ファイルI/O・レジストリ・プロセス/スレッド活動をリアルタイムに監視できるSysinternalsのツール。Advanced Outputを有効にすると、IRPやファストI/Oのカーネル側の語彙で操作を表示する。"@ja ;
    skos:altLabel "Procmon" ;
    skos:altLabel "Process Monitor" .

<https://comcomponent.com/knowledge/windbg-error-command/> a skos:Concept ;
    skos:prefLabel "WinDbgの!error"@ja ;
    skos:definition "Win32・Winsock・NTSTATUS・NetAPIのエラー値をデコードして表示するWinDbgの拡張コマンド。フラグに1を指定するとNTSTATUSとして解釈する。"@ja ;
    ks:implements <https://comcomponent.com/knowledge/windbg/> .

<https://comcomponent.com/knowledge/windbg/> a skos:Concept ;
    skos:prefLabel "WinDbg"@ja ;
    skos:definition "クラッシュダンプやハングしたプロセスの状態をカーネル/ユーザーモードで解析するためのMicrosoft製デバッガー。SOS拡張によるマネージドヒープ解析や、Application Verifierの検出結果の解析にも使われる。"@ja ;
    skos:altLabel "Debugging Tools for Windows" .

<https://comcomponent.com/knowledge/hresult-exception-mapping/> a skos:Concept ;
    skos:prefLabel "HRESULTから.NET例外へのマップ"@ja ;
    skos:definition "COM相互運用でHRESULTの失敗を受け取った.NETランタイムが、既知の値は対応する例外型に、未知の値はCOMExceptionに変換する仕組み。元の値はException.HResultに残る。"@ja ;
    ks:inherits <https://comcomponent.com/knowledge/hresult/> .

<https://comcomponent.com/knowledge/marshal-getlastwin32error/> a skos:Concept ;
    skos:prefLabel "Marshal.GetLastWin32Error"@ja ;
    skos:definition "SetLastErrorフラグを設定したP/Invoke呼び出しの最終エラーコードを取得する.NETのメソッド。GetLastErrorを直接P/Invokeしてはいけない。"@ja .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/win32-error-code/> ;
    rdf:predicate ks:storedIn ;
    rdf:object <https://comcomponent.com/knowledge/last-error-code/> ;
    schema:description "多くのWin32 APIは失敗を戻り値で示し、詳細なエラーコードはスレッドごとに保持される最終エラーコードに格納する。呼び出し側は失敗を確認した直後にGetLastErrorで取得する。成功時にコードを0で上書きするAPIとしないAPIが混在する点にも注意する。"@ja ;
    ks:evidence <https://learn.microsoft.com/windows/win32/debug/last-error-code> ;
    ks:verifiedAt "2026-08-20" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/win32-error-code/> ;
    rdf:predicate ks:verifiedBy ;
    rdf:object <https://comcomponent.com/knowledge/error-lookup-tool/> ;
    schema:description "err.exeは16進のステータスコードに関連付けられたメッセージテキストを、Winerror.hなど各種ヘッダーファイルを横断して表示する。"@ja ;
    ks:evidence <https://learn.microsoft.com/windows/win32/debug/system-error-code-lookup-tool> ;
    ks:verifiedAt "2026-08-20" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/win32-error-code/> ;
    rdf:predicate ks:verifiedBy ;
    rdf:object <https://comcomponent.com/knowledge/certutil-error/> ;
    schema:description "certutil -error は 0x80070002 (WIN32: 2 ERROR_FILE_NOT_FOUND) のように、シンボル名を含む形式でメッセージテキストを表示する。Windows標準なので追加インストールが要らない。"@ja ;
    ks:evidence <https://learn.microsoft.com/windows-server/administration/windows-commands/certutil> ;
    ks:verifiedAt "2026-08-20" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/hresult/> ;
    rdf:predicate ks:uses ;
    rdf:object <https://comcomponent.com/knowledge/hresult-facility/> ;
    schema:description "HRESULTは重大度のSビット、Customerビット、NTSTATUSマップを示すNビット、11bitのFacility、16bitのCodeというレイアウトで、発生源と詳細コードを1つの32bit値に詰めている。"@ja ;
    ks:evidence <https://learn.microsoft.com/openspecs/windows_protocols/ms-erref/0642cb2f-2075-4469-918c-4441e69c548a>, <https://learn.microsoft.com/windows/win32/com/structure-of-com-error-codes> ;
    ks:verifiedAt "2026-08-20" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/hresult-from-win32/> ;
    rdf:predicate ks:implements ;
    rdf:object <https://comcomponent.com/knowledge/hresult-facility/> ;
    schema:description "HRESULT_FROM_WIN32は下位16bitにWin32エラーコードを置き、FacilityにFACILITY_WIN32(7)を設定する。だから0x8007xxxxの下位16bitを10進に直せば本質のWin32エラーコードが取り出せる。"@ja ;
    ks:evidence <https://learn.microsoft.com/windows/win32/api/winerror/nf-winerror-hresult_from_win32>, <https://learn.microsoft.com/windows/win32/com/structure-of-com-error-codes> ;
    ks:verifiedAt "2026-08-20" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/hresult-from-win32/> ;
    rdf:predicate ks:inherits ;
    rdf:object <https://comcomponent.com/knowledge/win32-error-code/> ;
    schema:description "Win32エラーコードしか返せない下位層の失敗を、HRESULTを返す上位層へ伝えるための包み直しである。"@ja ;
    ks:evidence <https://learn.microsoft.com/windows/win32/api/winerror/nf-winerror-hresult_from_win32> ;
    ks:verifiedAt "2026-08-20" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/e-fail/> ;
    rdf:predicate ks:implements ;
    rdf:object <https://comcomponent.com/knowledge/hresult-facility/> ;
    schema:description "0x80004005はFacility=0(FACILITY_NULL)・Code=0x4005で、定義はE_FAIL「未指定の失敗」である。コード自体は詳細を報告できない失敗という意味しか持たないため、どのコンポーネントが返したかと同時刻のログへ調査の軸足を移す。"@ja ;
    ks:evidence <https://learn.microsoft.com/windows/win32/seccrypto/common-hresult-values>, <https://learn.microsoft.com/windows/win32/com/structure-of-com-error-codes> ;
    ks:verifiedAt "2026-08-20" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/ntstatus/> ;
    rdf:predicate ks:mayCause ;
    rdf:object <https://comcomponent.com/knowledge/win32-error-code/> ;
    schema:description "カーネルがNTSTATUSを返し、Win32サブシステムがそれをWin32エラーコードに変換し、COM層がさらにHRESULTへ包み直すという変換の流れが日常的に起きている。"@ja ;
    ks:evidence <https://learn.microsoft.com/windows/win32/api/winternl/nf-winternl-rtlntstatustodoserror>, <https://learn.microsoft.com/windows/win32/api/winerror/nf-winerror-hresult_from_win32> ;
    ks:verifiedAt "2026-08-20" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/rtlntstatustodoserror/> ;
    rdf:predicate ks:implements ;
    rdf:object <https://comcomponent.com/knowledge/ntstatus-to-win32-conversion/> ;
    schema:description "ntdllのRtlNtStatusToDosErrorがNTSTATUSを対応するWin32システムエラーコードへ変換し、対応が定義されていない値にはERROR_MR_MID_NOT_FOUNDを返す。カーネルの豊かな語彙がWin32層では粗い区分に丸められることがある。"@ja ;
    ks:evidence <https://learn.microsoft.com/windows/win32/api/winternl/nf-winternl-rtlntstatustodoserror> ;
    ks:verifiedAt "2026-08-22" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/hresult-nt-bit/> ;
    rdf:predicate ks:inherits ;
    rdf:object <https://comcomponent.com/knowledge/ntstatus/> ;
    schema:description "HRESULTのNビットを立てるとNTSTATUS値をそのままHRESULT空間へ持ち込める。0xDで始まるHRESULTを見たら、Nビットを外してNTSTATUSとして読むのが正しい手順になる。"@ja ;
    ks:evidence <https://learn.microsoft.com/openspecs/windows_protocols/ms-erref/0642cb2f-2075-4469-918c-4441e69c548a> ;
    ks:verifiedAt "2026-08-20" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/status-access-violation/> ;
    rdf:predicate ks:implements ;
    rdf:object <https://comcomponent.com/knowledge/ntstatus/> ;
    schema:description "0xC0000005はエラー重大度(先頭が0xC)のNTSTATUSで、STATUS_DLL_NOT_FOUND(0xC0000135)・STATUS_STACK_OVERFLOW(0xC00000FD)・STATUS_HEAP_CORRUPTION(0xC0000374)と並ぶ代表値である。ブレークポイント例外の0x80000003は警告重大度になる。"@ja ;
    ks:evidence <https://learn.microsoft.com/openspecs/windows_protocols/ms-erref/596a1078-e883-4972-9bbc-49e60bebca55>, <https://learn.microsoft.com/openspecs/windows_protocols/ms-erref/87fba13e-bf06-450e-83b1-9241dc81e781> ;
    ks:verifiedAt "2026-08-20" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/status-access-violation/> ;
    rdf:predicate ks:verifiedBy ;
    rdf:object <https://comcomponent.com/knowledge/windows-event-log/> ;
    schema:description "イベントログのApplication Error(イベントID 1000)に記録される「例外コード: 0xc0000005」がNTSTATUSである。"@ja ;
    ks:evidence <https://learn.microsoft.com/openspecs/windows_protocols/ms-erref/596a1078-e883-4972-9bbc-49e60bebca55> ;
    ks:verifiedAt "2026-08-20" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/ntstatus/> ;
    rdf:predicate ks:notRecommendedFor ;
    rdf:object <https://comcomponent.com/knowledge/bug-check-code/> ;
    schema:description "ブルースクリーンのSTOPコードは0x0000009F(DRIVER_POWER_STATE_FAILURE)のようにNTSTATUSとは別の独自番号体系で、専用のリファレンスを引く。NTSTATUSの表を引いてはいけない。"@ja ;
    ks:evidence <https://learn.microsoft.com/windows-hardware/drivers/debugger/bug-check-code-reference2> ;
    ks:verifiedAt "2026-08-22" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/ntstatus/> ;
    rdf:predicate ks:verifiedBy ;
    rdf:object <https://comcomponent.com/knowledge/procmon/> ;
    schema:description "ProcmonのResult列に出るNAME NOT FOUNDやACCESS DENIEDは、カーネルが返したNTSTATUS(STATUS_OBJECT_NAME_NOT_FOUNDやSTATUS_ACCESS_DENIED)の表示名である。"@ja ;
    ks:evidence <https://learn.microsoft.com/openspecs/windows_protocols/ms-erref/596a1078-e883-4972-9bbc-49e60bebca55> ;
    ks:verifiedAt "2026-08-20" ;
    ks:certainty "context-dependent" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/ntstatus/> ;
    rdf:predicate ks:verifiedBy ;
    rdf:object <https://comcomponent.com/knowledge/windbg-error-command/> ;
    schema:description "WinDbgの!error拡張はWin32・Winsock・NTSTATUS・NetAPIのエラー値をデコードして表示し、フラグに1を指定するとNTSTATUSとして解釈する。"@ja ;
    ks:evidence <https://learn.microsoft.com/windows-hardware/drivers/debuggercmds/-error> ;
    ks:verifiedAt "2026-08-20" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/windbg-error-command/> ;
    rdf:predicate ks:implements ;
    rdf:object <https://comcomponent.com/knowledge/windbg/> ;
    schema:description "!errorはWinDbgの拡張コマンドとして提供され、ダンプ解析中にそのままエラー値を引ける。"@ja ;
    ks:evidence <https://learn.microsoft.com/windows-hardware/drivers/debuggercmds/-error> ;
    ks:verifiedAt "2026-08-20" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/hresult-exception-mapping/> ;
    rdf:predicate ks:inherits ;
    rdf:object <https://comcomponent.com/knowledge/hresult/> ;
    schema:description "既知のHRESULTはE_ACCESSDENIED→UnauthorizedAccessException、E_NOTIMPL→NotImplementedExceptionのように対応する例外型へ、明示的なマップがない値はCOMExceptionへ変換される。どの例外でも元のHRESULTはException.HResultに残る。"@ja ;
    ks:evidence <https://learn.microsoft.com/dotnet/standard/native-interop/how-to-map-hresults-and-exceptions> ;
    ks:verifiedAt "2026-08-20" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/last-error-code/> ;
    rdf:predicate ks:verifiedBy ;
    rdf:object <https://comcomponent.com/knowledge/marshal-getlastwin32error/> ;
    schema:description "SetLastErrorフラグを設定したP/Invoke呼び出しの最終エラーコードは、GetLastErrorを直接P/Invokeするのではなく、Marshal.GetLastWin32Errorで取得する。"@ja ;
    ks:evidence <https://learn.microsoft.com/dotnet/api/system.runtime.interopservices.marshal.getlastwin32error> ;
    ks:verifiedAt "2026-08-22" ;
    ks:certainty "established" .
