@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-on-arm-business-apps/#article>
    schema:about <https://comcomponent.com/knowledge/windows-on-arm/> ;
    schema:mentions <https://comcomponent.com/knowledge/x86-x64-emulation/>, <https://comcomponent.com/knowledge/prism/>, <https://comcomponent.com/knowledge/wow64/>, <https://comcomponent.com/knowledge/arm64ec/>, <https://comcomponent.com/knowledge/arm64x/>, <https://comcomponent.com/knowledge/process-architecture-mixing-restriction/>, <https://comcomponent.com/knowledge/shell-extension-dll/>, <https://comcomponent.com/knowledge/rid-win-arm64/>, <https://comcomponent.com/knowledge/anycpu-arm64-pinvoke-mismatch/>, <https://comcomponent.com/knowledge/com-inprocess-server/>, <https://comcomponent.com/knowledge/app-assure/>, <https://comcomponent.com/knowledge/copilot-plus-pc/>, <https://comcomponent.com/knowledge/badimageformatexception/>, <https://comcomponent.com/knowledge/runtimeinformation-api/>, <https://comcomponent.com/knowledge/fasttrack/>, <https://comcomponent.com/knowledge/kernel-mode/>, <https://comcomponent.com/knowledge/user-mode/>, <https://comcomponent.com/knowledge/com-localserver/>, <https://comcomponent.com/knowledge/dotnet/>, <https://comcomponent.com/knowledge/dotnet-framework/> .

<https://comcomponent.com/knowledge/windows-on-arm/> a skos:Concept ;
    skos:prefLabel "Windows on Arm"@ja ;
    skos:definition "Arm64プロセッサー上で動作するWindowsのこと。Copilot+ PCなどSnapdragon搭載機の普及により、開発者が意識せざるを得ない存在になった。"@ja ;
    skos:altLabel "Arm版Windows"@ja ;
    skos:altLabel "WOA" ;
    ks:uses <https://comcomponent.com/knowledge/x86-x64-emulation/> ;
    ks:requires <https://comcomponent.com/knowledge/process-architecture-mixing-restriction/> .

<https://comcomponent.com/knowledge/x86-x64-emulation/> a skos:Concept ;
    skos:prefLabel "x86/x64エミュレーション"@ja ;
    skos:definition "Windows 11 on Armに組み込まれた、x86/x64のユーザーモードアプリを無修正で実行するエミュレーション機能。x86命令ブロックをArm64命令へJITコンパイルし、モジュールごとにキャッシュする。"@ja ;
    skos:altLabel "Arm上のx86/x64エミュレーション"@ja ;
    skos:altLabel "OS組み込みエミュレーション"@ja ;
    ks:requires <https://comcomponent.com/knowledge/user-mode/> ;
    ks:incompatibleWith <https://comcomponent.com/knowledge/kernel-mode/> ;
    ks:incompatibleWith <https://comcomponent.com/knowledge/shell-extension-dll/> .

<https://comcomponent.com/knowledge/prism/> a skos:Concept ;
    skos:prefLabel "Prism(エミュレーター)"@ja ;
    skos:definition "Windows 11 24H2で導入された、Qualcomm Snapdragon向けに最適化された新しいx86/x64エミュレーター。従来より性能が向上しCPU使用率が下がった。"@ja ;
    skos:altLabel "Prism" .

<https://comcomponent.com/knowledge/user-mode/> a skos:Concept ;
    skos:prefLabel "ユーザーモード"@ja ;
    skos:definition "アプリケーションが動作する実行モード。プロセスごとに私有の仮想アドレス空間とハンドルテーブルを持ち、他のアプリケーションやカーネルメモリを直接操作できない。"@ja ;
    skos:altLabel "User Mode" .

<https://comcomponent.com/knowledge/kernel-mode/> a skos:Concept ;
    skos:prefLabel "カーネルモード"@ja ;
    skos:definition "プロセッサがハードウェアと全メモリへ制限なくアクセスできる実行モード。OS中核部分やデバイスドライバーはここで動作し、単一の仮想アドレス空間を全コードが共有する。"@ja ;
    skos:altLabel "Kernel Mode" .

<https://comcomponent.com/knowledge/shell-extension-dll/> a skos:Concept ;
    skos:prefLabel "シェル拡張・IME等(他プロセスにロードされるDLL)"@ja ;
    skos:definition "Explorerなど他プロセスへロードされるシェル拡張・IME・支援技術のDLL。ロード先プロセスと同じアーキテクチャへの再コンパイルが必要になる。"@ja ;
    skos:altLabel "シェル拡張"@ja ;
    skos:altLabel "IME" ;
    skos:altLabel "支援技術"@ja .

<https://comcomponent.com/knowledge/wow64/> a skos:Concept ;
    skos:prefLabel "WOW64"@ja ;
    skos:definition "64bit Windows上で32bitアプリケーションを動作させる互換環境のこと。"@ja ;
    skos:altLabel "32bit互換環境"@ja .

<https://comcomponent.com/knowledge/copilot-plus-pc/> a skos:Concept ;
    skos:prefLabel "Copilot+ PC"@ja ;
    skos:definition "毎秒40兆回以上の演算(40+ TOPS)が可能なNPUを搭載したWindows 11 PCの新カテゴリー。多くがArmベースのSnapdragon Xシリーズを採用している。"@ja ;
    skos:altLabel "Copilot+ PC" .

<https://comcomponent.com/knowledge/process-architecture-mixing-restriction/> a skos:Concept ;
    skos:prefLabel "プロセス内アーキテクチャ混在の制約"@ja ;
    skos:definition "1つのプロセスの中でx64とArm64のバイナリを混在させることはできないという、Windowsのプロセスモデルの原則。x64/Arm64ECプロセスはx64とArm64ECのバイナリを、Arm64プロセスはArm64のバイナリのみをロードできる。"@ja ;
    skos:altLabel "アーキテクチャ境界"@ja ;
    skos:altLabel "ロード可否のルール"@ja .

<https://comcomponent.com/knowledge/arm64ec/> a skos:Concept ;
    skos:prefLabel "Arm64EC"@ja ;
    skos:definition "x64の呼び出し規約・スタック使用・データレイアウトに従うことで、同一プロセス内でエミュレーション実行されるx64コードと混在できるネイティブArm64コードのABI。"@ja ;
    skos:altLabel "Emulation Compatible" ;
    ks:mitigates <https://comcomponent.com/knowledge/process-architecture-mixing-restriction/> .

<https://comcomponent.com/knowledge/arm64x/> a skos:Concept ;
    skos:prefLabel "Arm64X"@ja ;
    skos:definition "従来のArm64コードとArm64ECコードを1つのPEファイルに同居させ、x64プロセスにもArm64プロセスにもロードできるバイナリ形式。"@ja ;
    skos:altLabel "Arm64X PE" ;
    ks:mitigates <https://comcomponent.com/knowledge/process-architecture-mixing-restriction/> .

<https://comcomponent.com/knowledge/com-inprocess-server/> a skos:Concept ;
    skos:prefLabel "COMインプロセスサーバー"@ja ;
    skos:definition "DLLとして実装され、呼び出し元プロセスに直接ロードされるCOMサーバーの形態。プロセス内アーキテクチャ混在の制約をそのまま受ける。"@ja ;
    skos:altLabel "in-proc COMサーバー"@ja ;
    ks:requires <https://comcomponent.com/knowledge/process-architecture-mixing-restriction/> .

<https://comcomponent.com/knowledge/com-localserver/> a skos:Concept ;
    skos:prefLabel "COM LocalServer(別プロセスCOMサーバー)"@ja ;
    skos:definition "COMサーバーをEXEとして別プロセスで動かす形態。bitnessの壁を越えたり、クラッシュを隔離したりできる。レジストリのCLSID配下のLocalServer32キーにEXEパスを登録する。"@ja ;
    skos:altLabel "LocalServer32" ;
    skos:altLabel "out-of-proc COMサーバー"@ja ;
    skos:broader <https://comcomponent.com/knowledge/com/> ;
    ks:mitigates <https://comcomponent.com/knowledge/process-architecture-mixing-restriction/> .

<https://comcomponent.com/knowledge/rid-win-arm64/> a skos:Concept ;
    skos:prefLabel "RID win-arm64"@ja ;
    skos:definition ".NETのpublish時にArm64ネイティブの実行ファイルを生成するために指定するランタイム識別子(RID)。"@ja ;
    skos:altLabel "win-arm64" ;
    skos:altLabel "ランタイム識別子win-arm64"@ja ;
    ks:requires <https://comcomponent.com/knowledge/dotnet/> .

<https://comcomponent.com/knowledge/dotnet/> a skos:Concept ;
    skos:prefLabel ".NET(Core以降)"@ja ;
    skos:definition ".NET Frameworkの後継となる、クロスプラットフォーム対応の.NETランタイム(.NET 5以降)。"@ja ;
    skos:altLabel ".NET Core" ;
    skos:altLabel "モダンな.NET"@ja .

<https://comcomponent.com/knowledge/dotnet-framework/> a skos:Concept ;
    skos:prefLabel ".NET Framework"@ja ;
    skos:definition "Windowsのコンポーネントとして扱われ、インストールされているOSのライフサイクルに沿ってサポートされるランタイム。System.Messagingの対象範囲。"@ja .

<https://comcomponent.com/knowledge/anycpu-arm64-pinvoke-mismatch/> a skos:Concept ;
    skos:prefLabel "AnyCPUとP/Invokeの組み合わせ問題"@ja ;
    skos:definition "AnyCPUの.NETアプリがArm64ランタイムでArm64プロセスとして実行される際、x64専用のネイティブDLLをP/Invokeしていると読み込みに失敗する組み合わせ問題。"@ja ;
    skos:altLabel "AnyCPU/P/Invoke不一致"@ja ;
    ks:mayCause <https://comcomponent.com/knowledge/badimageformatexception/> ;
    ks:verifiedBy <https://comcomponent.com/knowledge/runtimeinformation-api/> .

<https://comcomponent.com/knowledge/badimageformatexception/> a skos:Concept ;
    skos:prefLabel "BadImageFormatException"@ja ;
    skos:definition "アプリのコンポーネントが異なるプラットフォームを対象としている場合(異アーキテクチャのアセンブリ読み込み等)に発生する.NETの例外。"@ja ;
    skos:altLabel "BadImageFormatException Class" .

<https://comcomponent.com/knowledge/runtimeinformation-api/> a skos:Concept ;
    skos:prefLabel "RuntimeInformation.ProcessArchitecture/OSArchitecture"@ja ;
    skos:definition "実行中プロセスのアーキテクチャ(ProcessArchitecture)とOS本来のアーキテクチャ(OSArchitecture、.NET 7以降はエミュレーションを剥がした値を返す)を取得できる.NETのAPI。"@ja ;
    skos:altLabel "RuntimeInformation.ProcessArchitecture" ;
    skos:altLabel "RuntimeInformation.OSArchitecture" .

<https://comcomponent.com/knowledge/app-assure/> a skos:Concept ;
    skos:prefLabel "App Assure"@ja ;
    skos:definition "MicrosoftのFastTrackに含まれるアプリ互換性支援プログラムで、対象プランの組織はWindowsやEdgeなどへの移行で生じた互換性問題の修復支援を追加費用なしで受けられる。"@ja ;
    ks:recommendedFor <https://comcomponent.com/knowledge/windows-on-arm/> ;
    ks:requires <https://comcomponent.com/knowledge/fasttrack/> .

<https://comcomponent.com/knowledge/fasttrack/> a skos:Concept ;
    skos:prefLabel "FastTrack"@ja ;
    skos:definition "対象のMicrosoft 365・Windowsプランに追加費用なしで含まれる、Microsoftの導入支援プログラム。1テナントあたり対象プランのライセンスを150以上購入していることが利用条件になる。"@ja ;
    skos:altLabel "Microsoft FastTrack" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/windows-on-arm/> ;
    rdf:predicate ks:uses ;
    rdf:object <https://comcomponent.com/knowledge/x86-x64-emulation/> ;
    schema:description "Windows 11 on Armは、x86/x64のユーザーモードアプリを無修正で実行するOS組み込みのエミュレーション機能を持つ"@ja ;
    ks:evidence <https://learn.microsoft.com/windows/arm/apps-on-arm-x86-emulation> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/x86-x64-emulation/> ;
    rdf:predicate ks:uses ;
    rdf:object <https://comcomponent.com/knowledge/prism/> ;
    schema:description "Windows 11 24H2以降に限り、x86/x64エミュレーションはPrismという新しいエミュレーターを使い性能を改善している。それより前のビルドは旧エミュレーターを使う"@ja ;
    ks:evidence <https://learn.microsoft.com/windows/arm/apps-on-arm-x86-emulation> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "context-dependent" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/x86-x64-emulation/> ;
    rdf:predicate ks:requires ;
    rdf:object <https://comcomponent.com/knowledge/user-mode/> ;
    schema:description "エミュレーションが動くのはユーザーモードのコードのみで、この境界がArm対応調査の基準になる"@ja ;
    ks:evidence <https://learn.microsoft.com/windows/arm/apps-on-arm-x86-emulation> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/x86-x64-emulation/> ;
    rdf:predicate ks:incompatibleWith ;
    rdf:object <https://comcomponent.com/knowledge/kernel-mode/> ;
    schema:description "エミュレーションが対応するのはユーザーモードのコードだけで、カーネルモードドライバーはエミュレーションされないためArm64ネイティブが必須になる"@ja ;
    ks:evidence <https://learn.microsoft.com/windows/arm/apps-on-arm-x86-emulation> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/x86-x64-emulation/> ;
    rdf:predicate ks:incompatibleWith ;
    rdf:object <https://comcomponent.com/knowledge/shell-extension-dll/> ;
    schema:description "シェル拡張・IME・支援技術のようにExplorerなど他プロセスへロードされるDLLは、システムと同じArm64への再コンパイルが必要でエミュレーションでは救えない"@ja ;
    ks:evidence <https://learn.microsoft.com/windows/arm/apps-on-arm-troubleshooting-x86> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/x86-x64-emulation/> ;
    rdf:predicate ks:uses ;
    rdf:object <https://comcomponent.com/knowledge/wow64/> ;
    schema:description "32bit(x86)アプリはx64版Windowsと同じWOW64レイヤーの上で動きファイルシステム・レジストリのリダイレクトを受ける一方、x64アプリにはWOW64レイヤーがない"@ja ;
    ks:evidence <https://learn.microsoft.com/windows/arm/apps-on-arm-x86-emulation> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "context-dependent" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/copilot-plus-pc/> ;
    rdf:predicate ks:uses ;
    rdf:object <https://comcomponent.com/knowledge/windows-on-arm/> ;
    schema:description "Copilot+ PCの多くはArmベースのSnapdragon Xシリーズを採用しており、開発者がWindows on Armを意識する主要な契機になっている"@ja ;
    ks:evidence <https://learn.microsoft.com/windows/ai/npu-devices/> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "context-dependent" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/windows-on-arm/> ;
    rdf:predicate ks:requires ;
    rdf:object <https://comcomponent.com/knowledge/process-architecture-mixing-restriction/> ;
    schema:description "Windows on Armでも32bit/64bit時代と同じ「1プロセス内でアーキテクチャは混在できない」という原則が成り立ち、x64/Arm64ECプロセスはx64とArm64ECを、Arm64プロセスはArm64のみをロードできる"@ja ;
    ks:evidence <https://learn.microsoft.com/windows/arm/arm64ec> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/arm64ec/> ;
    rdf:predicate ks:mitigates ;
    rdf:object <https://comcomponent.com/knowledge/process-architecture-mixing-restriction/> ;
    schema:description "Arm64ECはx64の呼び出し規約に従うことで、プロセス内アーキテクチャ混在の制約を保ったままx64コードと同一プロセスで混在できるネイティブArm64コードを実現し、段階的なネイティブ化を可能にする"@ja ;
    ks:evidence <https://learn.microsoft.com/windows/arm/arm64ec> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/arm64x/> ;
    rdf:predicate ks:mitigates ;
    rdf:object <https://comcomponent.com/knowledge/process-architecture-mixing-restriction/> ;
    schema:description "Arm64XはArm64とArm64ECのコードを1つのPEに同居させ、x64/Arm64どちらのプロセスにもロードできるバイナリを作ることで、両アーキテクチャから呼ばれるDLLの制約を回避する"@ja ;
    ks:evidence <https://learn.microsoft.com/windows/arm/arm64x-pe> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/com-inprocess-server/> ;
    rdf:predicate ks:requires ;
    rdf:object <https://comcomponent.com/knowledge/process-architecture-mixing-restriction/> ;
    schema:description "COMインプロセスサーバーはただのDLLなので、プロセス内アーキテクチャ混在の制約がそのまま適用され、x64クライアントからはx64(またはArm64EC/Arm64X)のCOM DLLしか使えない"@ja ;
    ks:evidence <https://learn.microsoft.com/windows/arm/arm64ec> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/com-localserver/> ;
    rdf:predicate ks:mitigates ;
    rdf:object <https://comcomponent.com/knowledge/process-architecture-mixing-restriction/> ;
    schema:description "アウトプロセスCOM(LocalServer)にプロセスを分けてIPCで連携する構成は32bit/64bit時代からの定石であり、Arm64でもアーキテクチャの壁をプロセス境界で越える解決策として使える"@ja ;
    ks:evidence <https://learn.microsoft.com/windows/win32/winprog64/process-interoperability> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/windows-on-arm/> ;
    rdf:predicate ks:uses ;
    rdf:object <https://comcomponent.com/knowledge/rid-win-arm64/> ;
    schema:description ".NETアプリをWindows on Arm向けにネイティブ実行するには、RID win-arm64を指定してpublishする。x86/x64エミュレーションで動かす場合やそもそも.NET製でないアプリはこのRIDを使わない"@ja ;
    ks:evidence <https://learn.microsoft.com/dotnet/core/rid-catalog> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "context-dependent" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/rid-win-arm64/> ;
    rdf:predicate ks:requires ;
    rdf:object <https://comcomponent.com/knowledge/dotnet/> ;
    schema:description ".NETは.NET 6以降でWindows Arm64を正式サポートしており、RID win-arm64を指定してpublishするだけでArm64ネイティブの実行ファイルを作れる"@ja ;
    ks:evidence <https://learn.microsoft.com/dotnet/core/rid-catalog> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/dotnet-framework/> ;
    rdf:predicate ks:uses ;
    rdf:object <https://comcomponent.com/knowledge/x86-x64-emulation/> ;
    schema:description ".NET Framework 4.8.1未満のアプリやx64ビルドのままの.NET Frameworkアプリは、Arm機ではx64エミュレーションの中で動作する扱いになる"@ja ;
    ks:evidence <https://learn.microsoft.com/windows/arm/overview> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "context-dependent" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/anycpu-arm64-pinvoke-mismatch/> ;
    rdf:predicate ks:mayCause ;
    rdf:object <https://comcomponent.com/knowledge/badimageformatexception/> ;
    schema:description "AnyCPUのアプリがArm64プロセスとして実行され、x64専用のネイティブDLLをP/Invokeしていると読み込みに失敗し、BadImageFormatExceptionとして現れる"@ja ;
    ks:evidence <https://learn.microsoft.com/dotnet/api/system.badimageformatexception> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/rid-win-arm64/> ;
    rdf:predicate ks:mayCause ;
    rdf:object <https://comcomponent.com/knowledge/anycpu-arm64-pinvoke-mismatch/> ;
    schema:description "Arm64の.NETランタイムでAnyCPUアプリを実行するとプロセスは既定でArm64として走るため、x64しかないネイティブDLLをP/Invokeしていると組み合わせ問題が起きる"@ja ;
    ks:evidence <https://learn.microsoft.com/windows/arm/overview> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "context-dependent" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/anycpu-arm64-pinvoke-mismatch/> ;
    rdf:predicate ks:verifiedBy ;
    rdf:object <https://comcomponent.com/knowledge/runtimeinformation-api/> ;
    schema:description "プロセスのアーキテクチャとネイティブ依存物のアーキテクチャの不一致は、RuntimeInformation.ProcessArchitecture/OSArchitectureで切り分けられる"@ja ;
    ks:evidence <https://learn.microsoft.com/dotnet/api/system.runtime.interopservices.runtimeinformation.processarchitecture> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/app-assure/> ;
    rdf:predicate ks:recommendedFor ;
    rdf:object <https://comcomponent.com/knowledge/windows-on-arm/> ;
    schema:description "自社開発のLOBアプリやISVアプリのArm対応で行き詰まった場合、App Assureという公式の支援窓口が用意されている"@ja ;
    ks:evidence <https://learn.microsoft.com/windows/compatibility/app-assure> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/app-assure/> ;
    rdf:predicate ks:requires ;
    rdf:object <https://comcomponent.com/knowledge/fasttrack/> ;
    schema:description "App AssureはFastTrackの特典の一部であり、1テナントあたり対象プランのライセンスを150以上購入していることが利用条件になる"@ja ;
    ks:evidence <https://learn.microsoft.com/microsoft-365/fasttrack/eligibility> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .
