
Xbox Series のアーキテクチャに関する個人研究
| フィールド | 値 |
|---|---|
| 日付 | 2026年3月9日〜12日 + 2026年7月7日〜?日 |
| ハードウェア | Xbox Series S (コードネーム: Lockhart) |
| OS ビルド | 26100.7010.amd64fre.xb_flt_2602ge.260212-1010 + 26100.8561.amd64fre.xb_flt_2606ge.260609-2200 |
| アクセス方法 | Dev Mode + SSH + REST API + NTFS ファイル共有ジャンクション |
このレポートは、Xbox Series S の内部アーキテクチャを静的および動的に分析したもので、すべて Microsoft の公式開発者モード基盤を通じて実施されました。エクスプロイトやポリシー違反は一切使用されておらず、すべてのアクセスは個人開発者プログラムの範囲内に収まっています。
本レポートには、ゲームプレイに使用される最上位レベルのコンポーネントから、最下位レベルのシステムドライバーコンポーネントに至るまでの詳細が含まれています。これらの詳細のほとんどは Xbox One でも同じであると予想されます。
AI は、大量の初期調査結果 (200 件以上の分析出力と 50 件以上のランダムなメモ) をこの文書にすばやく一貫した形式で整形するために使用されました。今後の編集はすべて手作業で行われます。
もしこの文書の一部が不明確、記載不足、または誤りであると思われる場合は、遠慮なく DM を送ってください。また、私の質問 (セクション 12) に対する回答があれば、それも歓迎します。GUID やその他の一般的なパターンは、私のアカウントを特定するようなものを残してしまわないように、pre-commit フックで秘匿化されています。
私が取り組んでいることの多くは仮定に基づいているため、不正確かもしれません。より多くの情報を得て、より多くのバイナリを調査するにつれて変更される可能性があります。
おそらくお察しの理由により、私はいかなる状況でも、直接のバイナリ、逆アセンブル出力、または Microsoft およびその子会社の IP と見なされるものを共有しません。
ERA = GameOS Partition
SRA = SystemOS Partition
HT = Kinect (possibly "Human Tracking"?)
Arden = Xbox Series X/S GPU Stack
NewBe = Arden shader compiler
Host OS によるドライバー管理は、既知の SRA/ERA モデルの外側に存在します。信頼モデルを参照してください (セクション 4.2、17.5)。 XVIO.SYS と XSraFlt.sys は、Windows が初期化される前にハイパーバイザー (HostOS 経由) によって直接読み込まれ、アクセス可能なすべてのボリュームには存在しません。完全なカーネルアクセス下でも改ざんできず、これが主要なセキュリティ境界となっています。
HVCI は意図的に無効化されています (セクション 18)。 IsSecureKernelRunning = 0x0 は、セキュアカーネル (VTL1) が実行されていないことを確認しています。コード整合性はロード時のみで、バイナリがマップされた後は TOCTOU ウィンドウが残ります。これは意図的なパフォーマンストレードオフであり、セキュリティ境界はパーティション内のメモリ保護ではなく、ハイパーバイザーパーティションです。
NTFS ジャンクションにより、SystemOS ファイルシステム全体がネットワーク経由で公開されます (セクション 1.2)。 SSH シェルから単一の mklink /J コマンドを実行するだけで、C:\ またはその他の任意の場所が Device Portal のファイル共有にマップされ、開発者モードの PIN 以外に追加の認証を必要とせず、すべてのシステムバイナリをリモートから読み取ることができます。
パーティション間アーキテクチャはほぼ完全にマッピングされています (セクション 4、14、26〜28)。 ERA ゲームパーティションは、ハイパーバイザーを介したチャネルのみを通じて SystemOS と通信します。I/O 用の XVIO リングバッファ、共有メモリ用の GPA 変換、IPC 用の HvSocket、そして親となる "Host OS" によって許可されるゼロコピーフレームバッファ配信用の ALPC ポートセクションです。
Deploy:\ ジャンクションはローカルアクセス制限を回避します (セクション 25)。 Windows Update ボリュームは、どこかしらの不整合 (おそらく xrfssvc.exe?) により、ネットワーク共有 (S:\Deployment\SoftwareDistribution\) 経由でのみアクセス可能です。
ほとんどのバイナリには説明文字列が単に含まれているだけなのですが、それに気づいたのは今日になってからでした。というのも、私はコンソールへの実際の接続以外には Windows を何にも使っていなかったからです。多くの場合、内容は退屈ですが (例: XVUH、XVMCTRL)、時には非常に説明的なものもあります (例: Durango Virtual XVNC Bus Driver、Xbox Remote File System Service)。
すべてのテストは、開発者モードの小売版 Xbox Series S 1台で実施されました。結果は多くのビルドを反映していますが、最終的にはビルド間の差分を取って報告書にまとめる予定です。調査結果は、ハードウェアリビジョン (Series X、Xbox One) やファームウェアバージョンによって異なる場合があります。いくつかのカーネルレベルのサーフェスには到達できませんでした。ライブカーネルダンプは NoKernelDumps 制限によってブロックされ、xvmctrl.sys の IOCTL サーフェスは完全には列挙されていません。未解決の質問はセクション 12 で追跡されています。
アクセスは、公式には文書化されていない (ただし、コミュニティドキュメント があります) Dev Mode SSH インターフェースを介して確立されました。NTFS ジャンクション手法 (セクション 1.2) により、D:\DevelopmentFiles のスクラッチスペースから、C:\ システムボリューム全体と、追加のドライブ文字を持つすべてのボリュームへの読み取りアクセスが拡張されました。すべての分析は読み取り専用であり、システム設定は変更されませんでした (WdConfig.exe set は使用されませんでした)。Xbox は、SSH シェルを介して標準の x86_64 Windows コンソールバイナリ (/MT でコンパイル) を直接実行できるため、ローカルで解析ツールを実行するためにこれを使用しました。
カーネルダンプは利用できませんでした。NoKernelDumps という Device Portal の制限により、小売版の開発者モードではブロックされます。ユーザーモードのライブプロセスダンプは利用可能であり、関連する箇所で使用されました。
Xbox Dev Mode は Visual Studio をサポートしており、これは SSH を使用します:
DevToolsUserhttps://XBOX:11443 の Device Portal は、D:\DevelopmentFiles への隠し NTFS ファイル共有を公開しています。SSH シェルから:```batch
mklink /J D:\DevelopmentFiles\C C:\
This creates a junction point from the developer scratch space to the system C: drive root, exposing the entire SystemOS filesystem as a readable network share at:
\\XBOX\DevelopmentFiles\C
This allows running tools like `dumpbin` from a PC directly against Xbox system binaries over the network.
---
## 2. OS Identity
| Field | Value |
|--------------------|-------------------|
| Product Name | Xbox Series S |
| OS Edition | SystemOS |
| Windows NT Version | 10.0 |
| Build Number | 26100 |
| Build String | `26100.8561.amd64fre.xb_flt_2606ge.260609-2200` |
| LCUVer | `10.0.26100.8536` |
| Branch | `xb_flt_2602ge` |
| Build Date | June 09, 2026 |
| Architecture | x64 |
| UEFI Secure Boot | `NotCapable` |
| Console Codename | Lockhart |
| Console Mode | Default |
| Sandbox ID | `XDKS.1` |
The OS identifies as **SystemOS**, not Windows. The build branch `xb_flt_2602ge` seems to be a distinct Xbox "fork" of the Windows codebase, still very similar to Windows 11. Some Windows system binaries are bit-for-bit identical to their desktop counterparts, built with the same MSVC toolchain, likely originating from the same UUP packages. This is seperate from the unclear "Host OS".
### 2.1 Registry Identity
Several `CurrentVersion` fields have been intentionally frozen, similarly to desktop Windows (for compatibility with Xbox One titles in this case):
| Key | Value | Notes |
|-----|-------|-------|
| `CurrentVersion` | `6.3` | Reports internally as Windows 8.1, for compatibility |
| `BuildGUID` | | zeroed/scrubbed |
| `InstallDate` | `0` | no install timestamp |
| `EditionID` | `SystemOS` | Never updated |
| `ReleaseId` | `2009` | Frozen at Windows 10 20H2 era; never incremented |
---
## 3. Volume Layout
The console exposes 13 drive letters, most of which are assumed to be [like the Xbox One, entirely virtual](https://xboxoneresearch.github.io/wiki/operating-system/xbox-operating-system/)
| Drive | Label | Contents | Notes |
|-------|-------|----------|-------|
| `C:` | System Boot | Windows OS files | Standard SystemOS partition |
| `D:` | *(none)* | `DevelopmentFiles\` | Dev mode scratch space |
| `G:` | *(none)* | `GameDVR_VideoBuffer` (272MB), `GameDVR_AudioBuffer` (16MB), `GameDVR_AudioBuffer_SysLoopback` (3MB) | Raw circular capture buffers, shared memory between ERA and SystemOS |
| `J:` | Sys Tools | XTF toolchain, drivers, QuickActions | See Section 5 |
| `M:` | Misc | Contains the console specific NTFS overlays for libraries and drivers | System OS partition?
| `N:` | *(none)* | `BlackBox\`, `EtwPlus\`, `CMS\`, `errorstrings\`, `usersettings\` | Diagnostics and telemetry volume, see Section 3.2 |
| `Q:` | *(none)* | `Users\DevToolsUser\` | user home directory |
| `S:` | *(none)* | `apps\`, `Clip\`, `Deployment\`, `Prefetch\`, `Microsoft\`, `ProgramData\` | likely Host OS Volume (also contains default apps, and other resources) |
| `T:` | *(none)* | `GameDVR\`, `Update\`, junctions to Harddisk16 | GameDVR metadata + update pipeline |
| `U:` | *(none)* | `ShellState\`, `BackCompatLicenses\`, `UserDataCache\` | Shell and user state |
| `V:` | *(none)* | *(empty)* | Unknown purpose |
| `X:` | SystemAux | `Apps\`, `Catalog000.bin` (2.3MB) | System app binaries: 63 apps including `AdsLauncher`, `Xbox.DiscordComponent`, `Xbox.SingleUserProxy`, `Xbox.NTSCaptivePortal`, `Xbox.Xmap`, `Xbox.XboxIDP`, see Section 3.3 |
| `Y:` | SystemAuxF | `Apps\`, `Catalog000.bin` (6.5MB) | Secondary system app binaries |
Additionally, `\\.\HarddiskVolume10` exists with no drive letter assignment. There is a hidden WER (Windows Error Reporting) volume containing `CrashDumps\`, `ReportArchive\`, `ReportQueue\`, and `Temp\`. At least **18 physical disk device objects exist** (`PhysicalDrive0` through `PhysicalDrive17`), all present as kernel objects but inaccessible at the raw level from userspace. `HarddiskVolume16` and `HarddiskVolume18` exist as real accessible volumes but are blocked from `DevToolsUser`.
### 3.1 Hidden Kernel Device Paths
The following paths exist as kernel device objects but are inaccessible from userspace (normally):
- `\??\Deploy:\` Xbox update/deployment pipeline volume (accessible via junction over network share at `S:\Deployment\`)
### 3.2 N:\ Diagnostics Volume
Several directories on `N:\` are actively hidden by a filesystem filter driver at the kernel level as they appear empty to all userspace tools but are confirmed to be written to at runtime:
| Path | Status | Notes |
|------|--------|-------|
| `N:\EtwPlus\` | **Kernel-hidden** | Contents concealed by filesystem filter driver |
| `N:\BlackBox\` | Accessible | Contains Xbox specific ETL crash report telemetry data |
| `N:\errorstrings\en-US.json` | Accessible | Complete Xbox error string database contains 797 entries, see Section 3.4 |
| `N:\usersettings\18\public\` | Accessible | Full-quality gamerpic stored as extensionless PNGs (1080×1080 RGBA, standard PNG format) |
`N:\usersettings\18\public\` stores both `AppDisplayPic` and `GameDisplayPic` as extensionless files. SHA256 hashing confirms they are byte-for-byte identical, the app display picture and gamerpic are the same file written to two paths.
### 3.3 X:\ SystemAux
`X:\ht\versions\` contains an active Kinect vision stack with **three simultaneous versions** installed side-by-side (1.0.0, 1.0.1, 1.0.2), totalling 119MB. These correspond to `vvtechs.dll` builds versioned 1.67MB->1.70MB->1.85MB respectively.
**Body tracking ML models** (per version directory):
| File | Size | Purpose |
|------|------|---------|
| `exemplardb.xmplr` | 36.7MB | Full body pose exemplar database |
| `FernsModel.bin` | 932KB | Depth keypoint detector (random ferns classifier) |
| `HeadPosition.mshdf` | 262–393KB | Head joint estimator (varies by version) |
| `LSVMGripReleaseRight.gbd` | 7.5KB | Latent SVM grip/release classifier, right hand |
**Face tracking ML models** (system-wide, `C:\Windows\System32\ht\`):
| File | Size | Purpose |
|------|------|---------|
| `FaceDetector.bin` | 3.0MB | Locate faces in frame |
| `FaceRecognition.bin` | 3.4MB | Depth/IR identity recognition |
| `FaceRecognition_Color.bin` | 5.9MB | Color-channel identity recognition |
| `ExpressionRandomForest.model` | 150KB | Emotion classifier |
| `EyeLeftRandomForest.model` | 55KB | Left eye state |
| `EyeRightRandomForest.model` | 65KB | Right eye state |
| `LookingAwayRandomForest.model` | 42KB | Gaze/attention detection |
| `MouthOpenRandomForest.model` | 58KB | Mouth open state |
| `MouthMovedRandomForest.model` | 35KB | Lip movement |
| `FacialHairIRRandomForest.model` | 126KB | Facial hair (IR sensor only) |
| `GlassesIRRandomForest.model` | 206KB | Glasses detection (IR sensor only) |
All face attribute classifiers are **Random Forest** models. Output covers identity, expression, gaze, lip state, and appearance attributes.
The `vvtechs.dll` in the stack exports a single function: `NuiVisionCreateFactory`. It imports `EtwPlus.dll` and `D3D11`, confirming the Kinect vision pipeline runs on the GPU and uses the Xbox-specific telemetry path. This is active on hardware with no physical Kinect attached (see also `KinectSensorEnabled=true` in Section 6, and the full `nuiservice.exe` pipeline in Section 33).
### 3.4 N:\errorstrings\en-US.json Error Code Database
797 Xbox error string entries. Notable codes with security or architectural relevance:
| Error Code | String | Notes |
|------------|-----------------|-------|
| `0x887E0002` | D3D12.X runtime/driver mismatch | Confirms D3D12.X is an Xbox-specific D3D12 variant, not generic D3D12 |
| `0x80A40406` | Enhanced Microsoft telemetry enabled in dev mode | Dev mode explicitly opts the console into elevated telemetry collection |
---
## 4. Hypervisor Architecture
The Xbox uses a custom Hyper-V based hypervisor running two partitions:
- **SystemOS** the SRA partition
- **ERA partition** the GameOS / Title OS execution environment
### 4.1 Driver Stack
User space: xpal.dll
↓
Kernel: xpalk.dll
↓
xvmctrl.sys (364KB)
↓
Hypervisor: XVIO.SYS
### 4.2 Key Hypervisor Drivers
| Driver | Size | Purpose |
|-------------------|---------|----------------------------------------------------------------------|
| `xvmctrl.sys` | 364KB | VM Control, main hypervisor interface, IOCTL surface |
| `XVIO.SYS` | unknown | Xbox Virtual I/O, direct hypervisor ABI (not on SystemOS filesystem) |
| `xvioc.sys` | unknown | XVIO Client, SystemOS-side interface to XVIO |
| `xvbus.sys` | 73KB | Virtual bus root + HvSocket XVIO provider |
| `hvsocket.sys` | 185KB | Hyper-V socket implementation |
| `VMNP.SYS` | 106KB | Is named "NPFS Driver", also handles impersonations. |
| `Xrfs.sys` | 135KB | Xbox Filesystem driver |
| `XRmnt.sys` | 49KB | Xbox Mount driver |
| `XRo.sys` | 95KB | Xbox Readonly filter |
| `VerifierExt.sys` | 274KB | Driver Verifier Extension |
**Critical finding:** `XVIO.SYS` and `xpalk.dll` have **no registry service entries** and are **absent from the SystemOS filesystem**. They are probably loaded by Host OS before SystemOS starts, outside the local driver model entirely. This is the actual security mechanism; Even with full SystemOS kernel access, these components cannot be tampered with.
### 4.3 XVIO API Surface (reconstructed from imports)
Info on XVIO [can be found here](https://xboxoneresearch.github.io/wiki/development/xvio/xvio-overview/), however I cannot confirm things have not changed since the Xbox One.
From `xvmctrl.sys`, `xviomonc.sys`, and `srakmd_arden.sys` imports against `XVIO.SYS`:
XvioInitialize / XvioCleanup
XvioCreateEvent
XvioPostMessage
XvioGetCurrentPartitionId (identifies active partition, from xviomonc)
XvioGetReservedMemory (hypervisor carve-out RAM access, from srakmd_arden)
XvioRegisterGpaMdl / XvioUnregisterGpa (Guest Physical Address mapping)
XvioSfrMapPages / XvioSfrUnmapPages (Shared Frame Region, cross-partition GPU memory)
XvioSfrCounterGet / XvioSfrPerfCounterSet
XvioSfrReadEvent
XvioSetFocus (switches input focus between partitions)
XvioSetSystemTime
XvioSaveProvidersState / XvioRestoreProvidersState
XvioPerfMonitoringEnabled
XvioCreateRingBuffer / XvioDestroyRingBuffer
XvioGetRingBufferContext
XvioReadRingBuffer / XvioReadRingBufferEx / XvioWriteRingBuffer
XvioAcquireRingBufferRundown / XvioReleaseRingBufferRundown
`XvioRegisterGpaMdl` and the SFR functions are the hypervisor memory sharing mechanism, raw RAM and GPU framebuffer pages mapped across the partition boundary.
### 4.4 HvSocket Cross-Partition Services
`hvsocket.sys` exposes services for cross-partition socket communication:
- `HvSocketGetPartitionConnections` / `HvSocketGetPartitionListeners` enumerate active channels
- `HvSocketGetVmIdFromVmbusHandle` VMBus handle resolution
- `HvSocketUpdateServiceTable` registry of all cross-partition services
A GUID-named DLL `[REDACTED]_hvsocket.dll` registers an HvSocket service provider. The GUID is redacted in the case it might be identifiable.
The four wildcard HvSocket endpoint GUIDs have been resolved via SHA1 service SID computation, see Section 20 for full details including the DiagTrack, RpcSs, and EventLog cross-partition channels.
---
## 5. J:\ "Sys Tools" XTF / Dev Volume
> **Impact:** The `J:\` volume is present on every retail Xbox. In developer mode, the full XTF toolchain is accessible with no additional authentication beyond the dev mode PIN. This includes remote debugging, screen streaming, PIX GPU profiling, and console control APIs not intended for end-user access.
The most significant finding of this research. The `J:\` volume (labelled "Sys Tools") contains the **Xbox Tools Framework (XTF)**, Microsoft's internal developer kit toolchain, which is just present on every retail Xbox apparently. Full enumeration: **132 files, 52MB** across the volume.
### 5.1 XTF Extension Registry (`J:\tools\xtfextensions.txt`)
All 20 XTF extensions are registered with COM CLSIDs:
| DLL | CLSID |
|----------------------------|------------------|
| `XtfApplicationServer.dll` | `{10B16182-...}` |
| `XtfConsoleControl.dll` | `{5B45D0E0-...}` |
| `XtfConnectedStorage.dll` | `{9D610BBD-...}` |
| `XtfDebugMonitor.dll` | `{9141933C-...}` |
| `XtfDebugCaptureServer.dll` | `{F306F5C7-...}` |
| `XtfFileIO.dll` | `{8A8B4D4C-...}` |
| `XtfInput.dll` | `{7CC4D09B-...}` |
| `XtfPix.dll` | `{9BD151A3-...}` |
| `XtfGameStreaming.dll` | `{AA627F22-...}` |
| `XtfDiagInfo.dll` | `{FD21AC23-...}` |
| `XtfStressServer.dll` | `{6B5B0C75-...}` |
| `XtfSymbolProxyServer.dll` | `{69ABF3A1-...}` |
| `XtfPerf.dll` | `{F82AF734-...}` |
| `XtfRemoteRun.dll` | `{D77FE8B8-...}` |
| `XtfUser.dll` | `{2E302BAA-...}` |
| `XtfAuditioning.dll` | `{B91F5206-...}` |
| `XtfCleanup.dll` | `{9CF818E5-...}` |
| `XtfCredentialsServer.dll` | `{8582A384-...}` |
| `XtfEventServer.dll` | `{749FDEFA-...}` |
| `XtfUpdateT_s.dll` | `{DCDD4E77-...}` |
### 5.2 Visual Studio Remote Debugger (`J:\tools\debugmon\`)
msvsmon.exe
vsdebugeng.dll (1.5MB)
vsdebugeng.impl.dll (1.6MB)
msdia120.dll
diagnosticsscripthost.dll
vsdebuglaunchnotify.exe
Versioned debug payloads for VS 2015 through VS 2022 (`debugmondev14payload` through `debugmondev16payload`). **Three simultaneous Visual Studio remote debugger generations are present and registered: VS2015, VS2017, and VS2019** all coexist on the same retail console filesystem.
### 5.3 Other Notable Tools
| Binary | Purpose |
|---|---|
| `agent-xbox.exe` (1.5MB) | Main XTF agent |
| `xtfrtservice.exe` (1.3MB) | XTF runtime service host |
| `xstudioserviceexe.exe` | Xbox Studio service |
| `xperf.exe` | Xbox performance profiler, present and functional however **ETW kernel tracing is fully blocked regardless of tool** (see Section 5.5) |
| `videoserver.exe` (RTSP) | Standalone RTSP screen streaming server |
| `wdapp.exe`, `wdconfig.exe` | Wave Debugger / configuration tools |
| `wdcapture.exe` | Screenshot/video capture |
| `wdgamestream.exe` | Game streaming control |
| `xboxnetapidiagsystem.exe` | Xbox Live network diagnostics |
| `xbtp.dll` (503KB) | Xbox Broadband Transfer Protocol |
| `xraytool.exe` | Xbox console performance tool (Reveals the fact that Host OS exists) |
| `xstudioclient.dll` | Xbox Studio client library |
| `unattendedsetuphelper.exe` | Full console management toolkit, see Section 5.6 |
### 5.4 QuickActions `.xboxunattend` Format
`J:\QuickActions\` contains automation scripts in `.xboxunattend` format. These are plain Windows batch scripts triggered via Device Portal. Available actions:
- `Capture_Screenshot.xboxunattend` calls `wdcapture.exe screenshot`
- `Capture_Video.xboxunattend`
- `Toggle_ConsoleMode.xboxunattend` cycles hardware emulation modes via `WdConfig.exe`
- `Toggle_HDR.xboxunattend`
- `Toggle_Resolution.xboxunattend`
- `Launch_DevHome.xboxunattend` / `Launch_RetailHome.xboxunattend`
- `Suspend_Title.xboxunattend`
`Toggle_ConsoleMode.xboxunattend` reveals the full list of profiling mode identifiers passed to `WdConfig.exe`: `AnacondaProfiling`, `LockhartProfiling`, and **`Scarlett 40 GB`**.
### 5.5 xperf / WPR
`xperf.exe` and WPR are fully present and functional including a `NeuralProcessing` WPR profile. However, all ETW kernel tracing is blocked by two distinct error codes:
| Error Code | Meaning |
|------------|---------|
| `0x80070005` | `Access denied`, standard Windows ACL rejection |
| `0xc5585011` | `Xbox policy block`, **no user-facing error string exists for this code** (not present in `N:\errorstrings\en-US.json`) |
ETW provider enumeration shows **zero Xbox-specific providers** in the standard ETW namespace. All Xbox telemetry flows through `EtwPlus.dll` using `Etx`-prefixed functions, a completely separate pipeline from standard Windows ETW (see Section 19.3).
### 5.6 unattendedsetuphelper.exe Console Management Tool
`unattendedsetuphelper.exe` is a console management executable covering:
- Factory reset
- Network-based firmware update
- Toast/notification injection
- Device Portal management
It also serves as the runtime engine for `.xboxunattend` scripting (the QuickActions format documented in Section 5.4).
---
## 6. WdConfig Settings Surface
`J:\tools\WdConfig.exe` (build `10.0.26100.7010`) exposes the full console configuration API. notable settings:
### Debug Category
| Setting | Value | Notes |
|---|---|---|
| `ConsoleType` | `Lockhart` | Hardware identifier |
| `ConsoleMode` | `Default` | `AnacondaProfiling`, `LockhartProfiling`, `Scarlett 40GB` |
| `EraGraphicsDriverMode` | `Title Configured` | Options: `Retail`, `Instrumented`, `Validated`. SRA equivalent is `SraGraphicsDriverMode = Retail`, ERA and SRA use separate driver mode settings |
| `EnableKernelDebugging` | `false` | Prevents ERA crash teardown for kernel debugger attachment |
| `EnablePixMemory` | `false` | Reserves 6048MB extra for PIX on Lockhart Profiling mode |
| `CrashDumpType` | `None` | Options: `Triage`, `Mini`, `Heap` |
| `TitlePerformanceOverlay` | `false` | Real-time GPU/CPU HUD overlay on running titles |
| `ExtraTitleMemory` | `0` | Max 6048MB on Lockhart Profiling mode |
| `LastShutdownReason` | `Console crash` | Persisted across reboots, my console crashed at last shutdown |
| `KinectSensorEnabled` | `true` | **Set to true on hardware with no Kinect attached**, stack is provisioned regardless of hardware presence |
### Network Category
| Setting | Value | Notes |
|---|---|---|
| `UseDebugNicForAllTraffic` | `false` | A separate debug NIC exists, distinct from the reail NIC. |
### Storage Category
| Setting | Value | Notes |
|---|---|---|
| `DevkitUseRetailConnectedStorage` | `false` | If enabled, dev mode would use the retail connected storage partition. Not tested. |
| `RunFromPcDataCacheSizeInGB` | `100` | **100GB reserved by default for Run-From-PC title cache; locked, cannot be changed by the user** |
### Unattended Category
| Setting | Value | Notes |
|---|---|---|
| `AllowUsbUnattendScript` | `true` | `.xboxunattend` scripts on USB run automatically |
| `RunUnattendScriptImmediately` | `false` | If true, USB scripts run on boot without cancellation prompt |
### Security Notes
**Microsoft account email stored in plaintext.** The dev mode WdConfig store contains the linked Microsoft account email address in plaintext. This is likely readable by any process with SRA access.
---
## 7. XCRDAPI.dll Xbox Content Delivery API
`XCRDAPI.dll` is the Xbox platform's content management kernel. It handles DirectStorage, progressive install, DRM, xCloud, and blob storage in a single library.
### 7.1 DirectStorage
DStorageGetFactory
DStorageGetMappedControlPage
Xbox's DirectStorage implementation is embedded in XCRDAPI, not a separate SDK.
### 7.2 XVD LifecycleXCrdOpenAdapter / XCrdCloseAdapter
XCrdMount / XCrdMountContentType / XCrdUnmount / XCrdUnmountEx
XCrdCreateXVD / XCrdDeleteXVD / XCrdResizeXVD / XCrdGrowDynamicXvd
XCrdSetEraLaunchMapping associates XVD with ERA partition pre-launch
XCrdUpdateXvc / XCrdUpdateXvcEx
XCrdDefragXvc / XCrdTrimXvc / XCrdTrimXvd
XCrdRepairXvc
### 7.3 プログレッシブストリーミングインストール
XCrdStreamingStart / XCrdStreamingStop
XCrdStreamingQueryActiveInstanceId
XCrdStreamingQueryInformation / InformationByPath / InformationEx
XCrdStreamingQueryRegionInformation / ByPath
XCrdStreamingQueryRegionSpecifiers / ByPath
XCrdStreamingQueueInsertRegion
XCrdStreamingQueueQueryRegionList / ByPath
XCrdStreamingAdjustStreamingFlags
XCrdStreamingQueryRegionIdByOffset
完全な優先度付きキューのプログレッシブインストールパイプライン。リージョンはゲームコンテンツのアドレス可能なチャンクです。
### 7.4 XCloud統合
XCloudQueryFeatureBits
XCloudSetFeatureBits
xCloudストリーミング機能フラグは、ローカルコンテンツと同じAPIで制御されます。
### 7.5 DRM / アテステーション
XCrdQueryAttestationBlob
XCrdQueryEncryptedInfo / XCrdQueryUnlockInfo
XCrdIsSideloadedKeyPresent
XCrdEnableSharedPls / XCrdSetExternalPlsMapping
### 7.6 ストレージブロブシステム
XCrdStorageCreateBlob / DeleteBlob / MoveBlob / CopyBlob
XCrdStorageReadBlob / ReadBlobEx / WriteBlob / WriteBlobEx
XCrdStorageQueryBlobAttributes
XCrdXBlobCreate / Delete / Copy
XCrdFindFirstBlob / FindNextBlob / FindCloseBlob
### 7.7 XVD転送パイプライン
XCrdXvdXferInitialize / Uninitialize
XCrdXvdXferStart / Stop
XCrdXvdXferRead
XCrdXvdXferGetResult
### 7.8 パスシステム
XCrdXasBuildPath / XasBuildPathEx / XasKeyQueryValue (XAS App Store paths)
XCrdXdsGetVolumeMapping / XdsSetVolumeMapping (XDS Delivery Service volumes)
XCrdBuildPath / XCrdParsePath / XCrdUpdatePath
XCrdQueryDevicePath / QueryDevicePathByPath
XCrdSetFlatContentPath
---
## 8. xpal.dll Xboxプラットフォーム抽象化レイヤー(50エクスポート)
ハードウェアID、機能、電源管理のための、これまで文書化されていなかったAPI。
### ハードウェアID
XpalGetConsoleCertificate hardware certificate
XpalGetConsoleIdCch console hardware ID
XpalGetConsoleSerialNumberCch serial number
XpalGetSmcFirmwareId SMC firmware version
XpalGetSouthBridgeType chipset variant
### 世代 / SKU検出
XpalIsGen8 Xbox One
XpalIsGen9 Series X/S
XpalGetGenerationType
XpalIsHyperV hypervisor active
XpalIsExternalDevkit / XpalIsInternalDevkit
XpalGetVmType
XpalGetSystemType / XpalGetServerType / XpalGetConsoleMode
### 機能フラグ
XpalIsCapabilityEnabled
XpalIsCapabilityEnabledByVm
XpalIsFactorySettingEnabled
XpalGetFactorySettings
XpalGetCapabilities
XpalIsFeatureEnabled
### 電源管理
XpalInitiateDump trigger crash dump on demand
XpalInitiatePowerStateToggle
XpalInitiateSystemShutdown
XpalSetWakeupTimer
XpalQueryPowerToggleSource
XpalIsInForcedCs / XpalIsTransitioningToConnectedStandby
XpalIsSilentBootMode
XpalNotifyForcedCsHeartbeat
XpalIsRebootRequested
XpalRefreshPowerChimeMode
### 構成
XpalGetXConfig / XpalSetXConfig Xbox config store (modern EEPROM equivalent)
XpalSetSystemTime
XpalSetInformation
XpalReportUem trigger UEM (Universal Error Message)
### ERA / タイトルVM
XpalQueryTitleVmInfo
XpalWaitForTitleVmTermination
XpalBackgroundActivityRequest
---
## 9. eracontrol.exe ERAパーティションライフサイクルマネージャー
`C:\Windows\System32\eracontrol.exe` は LocalSystem(手動開始)として実行され、ERAゲームパーティションのライフサイクル全体を管理します。完全なインポート分析はセクション28にあります。主なインポートの要約:
- `NtOpenPartition` はHyper-VのERAパーティションハンドルを直接開きます
- `RtlSetProcessIsCritical` は自身をクリティカルプロセスとしてマークします(クラッシュするとシステムがBSODになります)
- `XCRDAPI.dll` は `XCrdSetEraLaunchMapping` を介してゲームXVDをマウント/アンマウントします
- `RIMAddInputObserver` / `RIMRemoveInputObserver` はERAへのルーティングのために生のコントローラー入力を傍受します
- `XblaInitialize` はコンソールのXbox Live認証コンテキストをブートストラップします
- `LogonUserExExW` はERAセッション用のユーザーログオントークンを作成します
- `UMgrOpenProcessHandleForAccess` ユーザーマネージャーのプロセスハンドルアクセス
- `PsmQueryBackgroundActivationType` バックグラウンドアクティベーション状態
同じディレクトリには `eraproxyapp.exe`(339KB)もあり、SystemOS側のコンポジターであり、ERAとシェル間のIPCブリッジです。完全なインポート分析はセクション29にあります。
---
## 10. BlackBox ETLトレース (N:\BlackBox\)
`N:\BlackBox\` ディレクトリには、ライブETWフライトレコーダートレースが含まれています。キャプチャされたトレースの分析から:
**注:** Xbox ETL形式は 'tracerp' でのみ解決されます。
### 内部ソースツリーパス(デバッグ計装に埋め込まれている)
onecoreuap\xbox\xblauth\lib\authmanagerimpl.cpp
onecoreuap\xbox\xblauth\lib\authmanagertokens.cpp
onecoreuap\xbox\xblauth\lib\xstsauthorizer.cpp
onecoreuap\xbox\xblauth\util\httprequest.cpp
### Xbox Live認証のリライングパーティ
http://xdes.xboxlive.com/ Xbox Dev/Engineering Services
http://xboxlive.com Standard XBL
http://mp.microsoft.com/ Microsoft Passport (MSA)
http://instance.mgt.xboxlive.com Instance/session management
### キャプチャされたクラッシュ
1. **`XboxUI.exe` BEX64** ダッシュボードシェルが `XboxUI.Data.dll` のオフセット `0x13eb0` でスタックバッファーオーバーラン(`STATUS_STACK_BUFFER_OVERRUN`、`0xc0000409`)に遭遇
2. **`MoAppHang`** パッケージ `REDACTED_GUID` のUWPアプリハング
---
## 11. 追加の注目すべき発見
### Xbox上のWSL
`LxssManager` と `lxcore` サービスは、`LaunchProtected: 0x2`(保護プロセス)と `SeTcbPrivilege` を持って存在します。Xbox上のWSLはOSレベルの信頼で実行され、その使用状況から、ほぼ確実に何かを動かしているか、少なくとも何らかの形で `Xbox.ConsoleXCloudPlayer`(xCloudゲームストリーミングクライアント)に関連しています。
wsl.exe は存在しますが、**読み取り不可**です。
### Xbox限定のSystem32バイナリ
標準のWindowsには存在しない注目すべきDLL:
- `XCRDAPI.dll` コンテンツ配信(セクション7で説明)
- `XBBlackbox.dll` フライトレコーダー(セクション30で説明)
- `XBCastRecv.dll` Xbox Cast / Miracastレシーバー(セクション30で説明)
- `XVMAudioServer.dll` クロスパーティションVMオーディオサーバー
- `Xbox.Shell.Api.dll` / `Xbox.Shell.OneStoreServices.dll` シェルAPI(セクション30で説明)
- `XboxCommandService.dll` コマンド/自動化
- `XboxUserSim.dll` UIテスト自動化
- `xboxgipsynthetic.dll` / `xboxsynthetickm.dll` シンセティックGIP仮想コントローラー注入(セクション30で説明)
- `AppXDeploymentExtensions.xbox.dll` Xbox固有のAppX展開
- `xvnapi.dll` Xbox仮想ネットワークAPI
- `xbsc_xs.dll` Xbox Seriesシェーダーコンパイラ(セクション16.2で説明)
### 存在するが文書化されていないサービス
- `EraControlService` ERAパーティションライフサイクル
- `XvdStreamSvc`(`xnetsharedservice.exe`)XVDストリーミング / プログレッシブインストール
- `XUpdMgr` Xbox Update Manager(どういうわけかWindows Updateとは別?)
- `XSraFlt` Xbox SRAフィルタードライバー
- `Manufacturing Broker` 工場プロビジョニングサービス
- `TestSirepSvc` SIREP内部テストプロトコル
- `GameCoreController` GDKゲームコアコントローラサービス
- `ConnectedStorage` Xboxクラウドセーブサービス
- `VideoManagerService` ビデオ出力管理
- `XBBlackbox` フライトレコーダーサービス
- `xbdiagservice` Xbox診断サービス
- `XtfRtService` XTFランタイムサービス
サービスレジストリに存在が確認されている追加のレガシー/低レベルドライバー(セクション11.2を参照):
- `Zurich` DVB仮想ドライバー
### `xvnc` / `xvncbus` Xbox仮想ネットワークカード
`xvnc.sys` と `xvncbus.sys` は**仮想NICスタック**であり、`xvnc` サービスの列挙により次のことが明らかになります:
ROOT\xvnc\0000 root/loopback virtual NIC
{e720983a-...}\wifi\01
{e720983a-...}\wfd\01 Wi-Fi Direct
{e720983a-...}\wfd_role0\01
`xvncbus` は、物理ワイヤレスアダプター上で仮想NICを列挙するWDF 1.15バスドライバーです。ERAパーティションはネットワークスタックに直接アクセスせず、`xvnc` 仮想NICレイヤーを所有する `NetXVmService` を介して通信します。GUID `{e720983a-...}` はXboxワイヤレスアダプターのハードウェアを識別します。
### `xviomonc.sys` XVIOモニタークライアント
表示パーティションのフォーカスを管理するブート開始ドライバー(`Start: 0x1`)。インポート分析:
XVIO.SYS: XvioInitialize, XvioCleanup, XvioPostMessage,
XvioSetFocus, XvioGetCurrentPartitionId - new XVIO export
VMNP.SYS: NpSetupVmImpersonation
xpalk.dll: XpalIsCapabilityEnabled
`xviomonc` はフレームバッファーデータを処理**しません**。シグナリングとフォーカス管理のみを行うドライバーです。`XvioSetFocus` はどのパーティションがディスプレイ/入力フォーカスを持つかを切り替え、`XvioGetCurrentPartitionId` はアクティブなパーティションを識別します。実際のフレームキャプチャは `srakmd_arden.sys` が処理します。
`VMNP.SYS` の `NpSetupVmImpersonation` は、モニタードライバーがパーティション境界を越えてERAディスプレイリソースにアクセスする際に、ERAパーティションのセキュリティIDを偽装できるようにします。
### G:\ GameDVRバッファー
G:\ にある3つのファイルは、ERAとSystemOS間で共有される生の循環メモリマップバッファーです:
- `GameDVR_VideoBuffer` 272MBのローリングビデオキャプチャ
- `GameDVR_AudioBuffer` 16MBのゲームオーディオ
- `GameDVR_AudioBuffer_SysLoopback` 3MBのシステム/UIオーディオ(別ストリーム)
---
## 11.1 レジストリの所見
### 開発キット専用 K:\ ドライブ参照
`HKLM\SOFTWARE\Microsoft\Durango\XTF` にはハードコードされたパスが含まれています:
K:\TDK\Tools\XtfJuno.dll
### `HKLM\SYSTEM\ResourcePolicyStore`
| 階層 | メモリ予算 |
|------|--------------|
| `BackgroundSmall` | 40MB |
| `Background` | (標準バックグラウンド) |
| `Balloon` | 5120MB |
CPUポリシーの階層:
| ポリシー | CPU割り当て |
|--------|---------------|
| `Paused` | 1% |
| `SoftCapLow` | 10% |
| `SoftCapFull` | 100% |
| `HardCap0` | 0% - 完全に凍結 |
**BeanHogポリシー**(おそらくフォアグラウンドのゲームプロセス予算?):
- メモリ: フォアグラウンド階層
- CPU: 100%
- `DoNotKill`: true
- 優先度: 最高重要度
---
## 11.2 Xbox Oneレガシー考古学
Xbox One時代の3つのドライバーがSeries Sのサービスレジストリに残っています。2つは無効、1つは現在実行中です。
### `Zurich` TVチューナーデコーダースタック
`zurichs.sys` はXbox OneのDVB仮想ドライバーです。ステータス: **無効**ですが、依然として登録されています。
重要な発見: `zurichs.sys` は `XVIO.SYS` のリングバッファーをインポートしています。TVチューナーは、復号したビデオストリームをXVIOハイパーバイザーリングバッファー経由で配信するようにアーキテクチャ設計されていました。チューナーはまた、`ZwUpdateWnfStateData` を使用して、Windows通知機能(WNF)経由でチューナー状態を公開していました。
### `PetraXC` Kinectセンサー制御デバイス
現在、**KinectSensorControlデバイス**として識別されているWDF仮想デバイスドライバーで、Kinectカメラセンサー用のカーネル側ハードウェア抽象化です。ステータス: **デバイス到着まで無効**(WDFデマンドスタートモデル)。
注目すべき特性:
- **WDF 1.11** に対して構築されており、これはWindows 8に対応し、元のXbox Oneカーネルベースに起源を持ちます
- `XVIO.SYS` をインポートしており、ハイパーバイザーリングバッファートランスポートを介して通信することを意味します
- `\\.\KinectSensorControl` をデバイスインターフェイスとして提供し、nuiserviceパイプライン内の `KinectMediaSource.dll` が `DeviceIoControl` 経由で消費します(セクション33を参照)
### `pspsra.sys` AMD PSPからSRAへのブリッジ
ステータス: **現在実行中**(`Start: 0x0`、ブート開始)。カーネルレベルでアクセス拒否され、ドライバーはロックされており、これ以上検査できません。
`pspsra.sys` はブートチェーン内でSRAパーティションの直下に位置し、**AMD Platform Security Processor(PSP)とSRAレイヤー間のブリッジ**として機能します。AMD PSPは、ベアメタルレベルでfTPMアテステーションとコンソール証明書を処理し、`pspsra.sys` はそのトラストチェーンをSRAに表面化するブリッジです。これにより、`XVIO.SYS` や `XSraFlt.sys` と同じ信頼階層に置かれ、SystemOSより先に初期化され、SystemOSに対して不透明であり、完全なカーネルアクセスでも到達できません。
---
## 12. 未解決の質問 + ドライバー
質問:
1. **XVIO.SYSの場所** アクセス可能なファイルシステム上にはなく、ブート時にハイパーバイザーによってロードされる
2. **WSLの使用** 存在し使用されていることは確認されたが、Xbox OSにおける具体的な役割は完全には解明されていない
3. **`XCrdXpfOp`** 未識別のXCRDAPI関数(XPF = ?)
4. **`XSraFlt.sys` + `XRmnt.sys` の場所** アクセス可能なすべてのファイルシステムに存在しないことが確認された。XVIO.SYSと共にホストOSによってロードされる
5. **`xvnc` GUID `{REDACTED_GUID}`** ワイヤレスアダプターGUID、完全なドライバーチェーンは未解明
6. **`S:\Shares\TitleScratch` リパースポイントターゲット** ディレクトリ一覧でOSによって積極的に秘匿されている。cmd.exe層より下で `FSCTL_GET_REPARSE_POINT` が必要。ほぼ確実に `\Device\Xrfs\<partition-guid>`(セクション26を参照)
7. **`xvmctrl.sys` IOCTLサーフェス** ライブカーネルダンプがブロックされている(小売開発モードの `NoKernelDumps` 制限)。IOCTLディスパッチテーブルはまだ列挙されていない
8. **ERAパーティションGUID** アクセス可能なレジストリパスでは公開されていない。カーネルダンプには表示されるはず(ブロックされているため回避策を調査中)
9. **`N:\EtwPlus\` の内容** カーネルファイルシステムフィルタードライバーによって積極的に隠されており、書き込みアクティビティが確認されているにもかかわらず、ディレクトリ一覧は空を返す。フィルタードライバーの正体は特定されていない(セクション3.2を参照)
10. ホストOS全体として、それが何をするのかさえ完全には確実ではない。
ドライバー:
1. **`xtcc.sys`**、`ntoskrnl.exe` と `XVIO.sys` の大量のインポートを考えると、おそらくセキュリティ関連の何かを担当している
2. **`FLTMGR.SYS`** `XRmnt.sys`、`XRo.sys` によってインポートされる
---
## 13. 仮想化I/Oとリモートアクセス(XVIO/SRA)
`xboxcloudstreaming.dll` のエクスポートと `CurrentControlSet\Services` レジストリエントリの分析は、リモート接続のための深いカーネルレベル統合を示しており、標準的なソフトウェアエミュレーションではなく「シンセティック」ハードウェアモデルを利用しています。ERA VMは、入力がどこから来るかにかかわらず(リモート、USB、ワイヤレスなど)、同じシンセティックデバイスを見ます。
### 13.1 XVIO(仮想I/O)スタック
XVIOフレームワークは、外部またはクロスパーティションソースからSystemOSにハードウェアレベルイベントを注入するための主要な方法であると思われます。
| サービス | カテゴリ | 機能 |
| --- | --- | --- |
| `hvsocketxvio` | トランスポート | Hyper-VソケットをXVIOプロトコルに接続するブリッジサービス。 |
| `InputXVIOClient` | コーディネーター | リモート入力パケットの仮想デバイスノードへのマッピングを管理します。 |
| `xviokbdbus` / `xviomoubus` | バスドライバー | シンセティック内部バス上で仮想HIDデバイスを列挙します。 |
| `xviokbd` / `xviomou` | デバイスドライバー | 仮想化されたキーボードとマウス用の特定の機能ドライバー。 |
### 13.2 シンセティックコントローラーパイプライン
`xboxcloudstreaming.dll` バイナリは `XboxgipSynthetic.dll` を活用して、OSが物理的に接続されたローカル周辺機器として認識するものを作り出します。
- **オーディオ仮想化:** `SyntheticController_AddAudioHeadset` により、システムはリモートネットワークオーディオをハードウェアバインドデバイスとしてコンソールのローカルオーディオスタックに流し込むことができます。
- **入力注入(RIM):** Remote Input Manager(`ext-ms-win-ntuser-rim-l1-1-0.dll`)の使用は、xCloudおよびリモートプレイセッションがWindowsリモートデスクトップと同じ高権限の注入メソッド、具体的には `InjectKeyboardInput` と `InjectPointerInput` を使用することを確認します。
### 13.3 SRA & 「Arden」ドライバー
> **注:** `SraKmdArden` ドライバーは、Series X/Sアーキテクチャ(Arden)に固有のハードウェアです。このドライバーは、システムがカーネルレベルでディスプレイバッファーを傍受できるようにし、通常クロスVM描画に伴うレイテンシーオーバーヘッドを最小限に抑える可能性があります。
### 13.4 HvSocketブリッジ(GUID `4545ffe2-...`)
これまで未識別だったHvSocket GUIDは、`hvsocketxvio` サービスに一致しました。これにより、XVIOはスタンドアロンのプロトコルではなく、Hyper-Vの内部ソケットトランスポート上で動作するレイヤーであることが確認されます。
これは、**ERA(ゲーム)パーティション**が入力のためにネットワークと直接通信しないことを示唆しています。その代わりに:
1. **SystemOS** が `XboxNetApiSvc` を介してネットワークパケットを受信します。
2. **`xboxcloudstreaming.dll`** がストリームを処理します。
3. **`hvsocketxvio`** が **HvSocket** を介して生の入力データをパーティション境界越えにパイプします。
4. ハイパーバイザー/ホスト層がそれをハードウェアイベントとしてターゲットパーティションに注入します。
---
## 14. M:\ ボリューム | オーバーレイアーキテクチャ
M:\(「System OS Misc」というラベル)は**オーバーレイボリューム**として機能します。ベースのC:\イメージの上にマウントされるコンポーネントを含むツリーです。このアーキテクチャにより、Microsoftは単一のOSイメージを出荷し、マウント時にオーバーレイを介して特定の機能セットを適用できます。
### 14.1 ボリューム構造
M:\
├── Catalog000-003.bin volume-specific code integrity catalogs
└── windows\
├── system32\
│ ├── drivers\ kernel drivers
│ ├── ht\ Kinect support (see section 33)
│ └── [~120 DLLs] userspace components
├── SystemApps\ system apps
├── DefaultApp\
├── Fonts\
├── Speech_OneCore\
├── textinput\
└── WebManagement\
### 14.2 ファイルシステムシンボリックリンク
C:\ はNTFSシンボリックリンクを介してM:\ コンポーネントを参照します。シンボリックリンクは2つのレベルに存在します:
**System32ドライバーレベル:**
C:\Windows\System32\drivers\srakmd_arden.sys -> M:\windows\system32\drivers\srakmd_arden.sys
**Windowsディレクトリレベル**
C:\Windows\DefaultApp -> M:\Windows\DefaultApp
C:\Windows\Fonts -> M:\Windows\Fonts
C:\Windows\SystemApps -> M:\Windows\SystemApps
C:\Windows\WebManagement -> M:\Windows\WebManagement
M:\ オーバーレイは単純なドライバー/DLL置き換えよりも広範囲に及びます。フォントストア、システムアプリ、Web管理インターフェイスを含むコアWindowsサブシステムディレクトリは、完全にM:\ 上に存在します。これは、特定のオーバーレイがGPUおよびキャプチャドライバーだけでなく、ある程度システムアプリとUIシェルレイヤー全体を制御する可能性があることを意味します。
M:\ を指すC:\ シンボリックリンクの完全な再帰的列挙は完了していません。
### 14.3 ハードウェア固有ドライバー(M:\windows\system32\drivers\)
| ドライバー | サイズ | 目的 |
|---|---|---|
| `srakmd_arden.sys` | 274KB | SRAキャプチャKMD -> Ardenハードウェア固有のフレームグラバー |
| `acpi.sys` | 873KB | ACPI -> ハードウェア固有ビルド(汎用より大きい) |
| `spaceport.sys` | 1MB | ストレージポート -> XVD暗号化 + ライセンスチェック |
| `spacedump.sys` | 304KB | ストレージダンプドライバー |
| `buttonconverter.sys` | 90KB | 電源/イジェクトHID -> コンソールイベント変換 |
| `qwavedrv.sys` | 90KB | QoS/ネットワーク品質ドライバー |
| `acpiex.sys` | 181KB | ACPI拡張 |
| `AcpiDev.sys` | 61KB | ACPIデバイス拡張 |
| `acpitime.sys` | 57KB | ACPIタイマー |
**発見:** `XSraFlt.sys` はM:\ ドライバーにもC:\ にも存在しません。アクセス可能なファイルシステムボリュームには保存されておらず、`XVIO.SYS` および `FLTMGR.sys` と共にブート時にホストOSによってロードされることを示唆しています。
### 14.4 ハードウェア固有ユーザースペースコンポーネント(M:\windows\system32\)
M:\ に固有の注目すべきDLL/EXE:
**GPU / シェーダースタック:**
- `umd12ddi_arden.dll` (1.56MB) D3D12ユーザーモードドライバーDDI、Ardenハードウェア
- `umd12ddi_d.dll` (1.5MB) D3D12 UMD、デバッグ/PIX計装ビルド
- `umd12ddi_i.dll` (1.14MB) D3D12 UMD、インボックス/フォールバックビルド
- `newbe_xs.dll` (26MB) 「NewBe」Arden GPUシェーダーコンパイラバックエンド
- `xbsc_xs.dll` (3.9MB) Xbox Seriesシェーダーコンパイラフロントエンド
- `dxcompiler_xs.dll` (17.8MB) Xbox Series HLSLコンパイラ
- `dxbc2dxil_xs.dll` (2.9MB) DXBCからDXILへのバイトコードコンバーター
- `pixrtddi.dll` (679KB) PIXレンダー/デバッグDDI
**開発者 / PIXツールチェーン:**- `VsGraphicsRemoteEngine.exe` (4.75MB) PIX GPUプロファイラのリモートエンジン
- `VsGraphicsCapture.dll` (225KB) PIXフレームキャプチャ
- `VsGraphicsExperiment.dll` (327KB) PIX実験フレームワーク
- `DXCaptureReplay.dll` (18MB) GPUキャプチャリプレイエンジン
- `DXCap.exe` (1.19MB) GPUキャプチャツール
- `DXToolsMonitor.dll` / `DXToolsOfflineAnalysis.dll` / `DXToolsReporting.dll` PIX解析スタック
- `DXGIDebug.dll` (151KB) DXGIデバッグレイヤー
- `d3d12SDKLayers.dll` (4.8MB) D3D12検証/デバッグレイヤー
- `d3d11_3SDKLayers.dll` (1.19MB) D3D11デバッグレイヤー
- `d2d1debug3.dll` (618KB) D2Dデバッグレイヤー
- `VSD3DWARPDebug.dll` (155KB) WARPソフトウェアラスタライザのデバッグビルド
- `plmdebug.exe` (204KB) PLM(プロセスライフサイクル)デバッガ
**ストリーミング / リモートアクセス:**
- `rdpbase.dll` (1.8MB) RDPベースライブラリ
- `rdpserverbase.dll` (2.3MB) RDPサーバーベース
- `XboxDevService.exe` (3.7MB) Xbox開発サービスホスト
- `XboxDevService.ProxyStub.dll`
**ソーシャル / プラグインスタック:**
- `DiscordPlugin.dll` (139KB) Discord統合
- `TwitchPlugin.dll` (639KB) Twitchストリーミング統合
**その他の注目点:**
- `XboxSyntheticKM.dll` (36KB)
- `xrmntcl.exe` (90KB) Xboxランタイムマウントクライアント
- `xtfupdateT_s_i.dll` (98KB) ?
- `xtcapi.dll` (57KB) XTC API(Xboxタイトル通信?)
- `wusys.dll` (308KB) Windows Updateシステム統合
---
## 15. GPUスタック | シェーダーコンパイルパイプライン
Xbox Series S/Xのシェーダーコンパイルパイプライン全体はM:\上に存在し、C:\には存在しない。ハードウェア固有のオーバーレイがマウントされていない限り、シェーダーコンパイルは不可能である。
### 15.1 `newbe_xs.dll`
26MBのDLL。Arden GPUシェーダーコンパイラのバックエンド。エクスポートはわずか6つ:
NB_CompileShader compile individual shader stage
NB_CompilePipeline compile full pipeline state object
NB_CreateOptimizer create register allocator / instruction scheduler
NB_GetRegPressure register pressure analysis (PIX-facing)
NB_GetShaderStats hardware shader statistics
NB_CreatePixDwarfApi generate DWARF debug info for GPU shaders
`.pass`セクションはLLVMスタイルのパスパイプラインを示唆している可能性がある。`NB_CreatePixDwarfApi`はPIX用のソースレベルシェーダーデバッグ情報を生成する。
### 15.2 `xbsc_xs.dll`
完全なコンパイルAPIをカバーする41のエクスポート:
XBSC_PipelineCompile / XBSC_GetPipelineCompileOutput
XBSC_CompileRootSignature / XBSC_GetCompiledRootSignature
XBSC_AssembleShader / XBSC_GetAssembledShader
XBSC_DisassembleHwPipeline / XBSC_DisassembleHwPipelineWithCallback
XBSC_DisassembleRawShader / XBSC_GetDisassembly
XBSC_GetRegPressure / XBSC_GetShaderStats / XBSC_DumpShaderStats
XBSC_CompressBuffer / XBSC_DecompressBuffer (shader cache compression)
XBSC_Serialize* / XBSC_Deserialize* (pipeline state serialization)
SCCompileMultiShadersXbox / SCDumpHwShader* (batch compilation)
SC_ConvertRootSignatureToSCInputs
`_mmddu`および`_MMDDT0` PEセクションには、コンパイラに組み込まれたハードウェアマイクロアーキテクチャテーブル(命令レイテンシ、レジスタファイルトポロジ、Ardenの実行ユニット数)である**Microsoft Machine-Dependent Driver Data**が含まれている。
### 15.3 `dxcompiler_xs.dll`
17.8MB。Xbox Series向けDXC HLSLコンパイラのフォーク。4つのエクスポート:
DxcCreateInstance / DxcCreateInstance2 standard DXC factory (compatible with public API)
CreateXdxrCompiler / CreateXdxrCompiler2 Xbox DXIR compiler (Xbox-specific IR format)
### 15.4 `dxbc2dxil_xs.dll` バイトコードコンバーター
2.9MB。単一のエクスポート:
SCDxil_ConvertDxbcToDxil convert DX11 DXBC bytecode to DXIL for DX12 pipeline
下位互換性のあるDX11シェーダーを、DX12専用のArdenパイプライン上で実行できるようにする。
### 15.5 完全なシェーダーコンパイルチェーン
Game/App submits HLSL or legacy DXBC shader
↓
[HLSL path] [DXBC legacy path]
dxcompiler_xs.dll dxbc2dxil_xs.dll
(DxcCreateInstance -> DXIL) (SCDxil_ConvertDxbcToDxil -> DXIL)
↓ ↓
└──────────┬──────────────────┘
↓
xbsc_xs.dll (XBSC_PipelineCompile)
calls newbe_xs.dll NB_ backend
uses _MMDDT0 Arden microarch tables
↓
umd12ddi_arden.dll
(submits compiled ISA via D3D12 DDI)
uses xg_xs.dll for texture layout
↓
srakmd_arden.sys (kernel)
XvioGetReservedMemory -> hypervisor carve-out RAM
zero-copy framebuffer -> ERA partition
---
## 16. `xg_xs.dll` Xboxグラフィックステクスチャレイアウトライブラリ
**C:\**(M:\ではない)に配置されている。テクスチャタイリング、レイトレーシングBVHレイアウト、DCC圧縮をカバーする27のエクスポートを含む。
### 16.1 エクスポートサーフェス
XGComputeBufferLayout
XGComputeTexture1DLayout / 2DLayout / 3DLayout
XGComputeOptimalSwizzleMode / OptimalDepthStencilSwizzleMode
XGComputeTileShape
XGSuggestSwizzleMode
XGValidateDepthStencilSwizzleMode / XGValidateDescriptor
XGCreateTexture1DComputer / 2DComputer / 3DComputer
XGCreateTextureComputer / XGCreateTextureComputerFromDescriptor
XGCreateBVHComputer / XGCreateBVHComputer2 ray tracing BVH layout
XGEncodeDCC / XGDecodeDCC / XGDecodeDCCSurface AMD Delta Color Compression
XGShuffleTextureBufferForDirectStorage GPU-side texture tiling for DirectStorage
XGSetHardwareVersion configure for Series S vs Series X memory layout
XGInitializeLibrary / XGTerminateLibrary
XGEnableExclusiveLocking / XGEnterExclusiveLock / XGLeaveExclusiveLock
### 16.2 主要な発見
**レイトレーシングBVHレイアウトはハードウェア固有である。** `XGCreateBVHComputer2`は第2世代のBVHレイアウトAPIを公開しており、Ardenアーキテクチャが、一般的なDXRとは異なる独自のBVHノード形式を持つことを示唆している。
**AMD DCC圧縮が公開されている。** `XGEncodeDCC` / `XGDecodeDCC`は、RDNA GPUで使用されるハードウェア可逆フレームバッファ圧縮であるAMDのDelta Color Compressionを実装している。`XGDecodeDCCSurface`は、PIXがDCC圧縮されたキャプチャフレームバッファを読み戻す際に使用するAPIである。
**DirectStorageタイリング。** `XGShuffleTextureBufferForDirectStorage`は、GPU展開中に、ディスク上のテクスチャレイアウトをArdenハードウェアタイリング形式に変換するGPU側シャッフルを実行し、VRAMへのゼロコピーロードを可能にする。
**`XGSetHardwareVersion`がすべてのレイアウトアルゴリズムを制御する。** このライブラリには、複数のハードウェアリビジョン向けのレイアウト実装が含まれている。Series SとSeries Xの識別子を指定して`XGSetHardwareVersion`を呼び出すと、それぞれ異なるメモリバス幅とキャッシュジオメトリを反映した異なるタイリング結果が生成される。
### 16.3 `.xbld` ビルドメタデータセクション
`xg_xs.dll`には、他のすべてのXboxバイナリには存在しない`.xbld` PEセクションが含まれており、Xbox OSビルドシステムではなく、別のGDK CIビルドパイプラインに由来することを示している。OSビルドシステムはタイムスタンプをゼロ化しメタデータセクションを除去するが、GDK CIはそうしない。
_xbld_edition_build = GXDK, 0x65F41B62
_xbld_edition_full_productbuild = GXDK, 10.0.26100.7010
_xbld_edition_sdktype = GXDK, 260400
_xbld_edition_name = GXDK, April 2026 GXDK
_xbld_edition_mscver = GXDK, 193833145.100
`edition_name`の値である**"April 2026 GXDK"**は、そのSDKエディションの公開リリースより前のものであり(執筆時点では2026年3月9日)、製品版OSが次の未リリースSDKサイクルに対してビルドされたGDKコンポーネントを同梱していることを裏付けている。`sdktype=260400`のバージョニングは`YYMMRR`(年/月/リビジョン)パターンに従っている。
`edition_build`のタイムスタンプ`0x65F41B62`は**2024年3月13日**にデコードされ、OSビルド日(2026年2月12日)より1年以上前であり、テクスチャレイアウトアルゴリズムが少なくとも5つのGDKリリースサイクルにわたって安定し、変更されていないことを示している。
`mscver=193833145.100`は、コンパイラが**MSVC 19.38**(Visual Studio 2022 17.8.x)であることを示している。
### 16.4 ビルドパイプラインの推測(UUP?)
GDK CI pipeline builds xg_xs.dll (with .xbld metadata intact)
↓
┌─────────────────────────┐
↓ ↓
Xbox OS image ingests April 2026 GDK SDK package
artifact directly ships same binary to developers
↓
Ships on every retail console
これは、製品版コンソール上の`xg_xs.dll`が、開発者がGDKで受け取るものとビット単位で同一であることを意味する。2026年4月の公開GDKリリース(利用可能になった時点)に対するハッシュ検証により、これを確認できるだろう。
---
## 17. カタログベース信頼コード整合性モデル
### 17.1 PEコンテナ形式
各ボリュームの`Catalog*.bin`ファイルは、**サブシステム`0x11`("Xbox Code Catalog")を持つPE32+実行可能ファイル**であり、公開ドキュメントには存在しない未文書化のサブシステムである。主要なPEヘッダー特性:
Magic: PE32+ (64-bit)
Subsystem: 0x11 ("Xbox Code Catalog", obtained from strings inside MSVC link.exe)
Entry point: 0 (never executed)
Code size: 0 (no executable code)
DLL Chars: IMAGE_DLLCHARACTERISTICS_DYNAMIC_BASE
IMAGE_DLLCHARACTERISTICS_FORCE_INTEGRITY <- critical
IMAGE_DLLCHARACTERISTICS_NX_COMPAT
Sections: 1 unnamed read-only section (raw payload)
これらがどのように機能するかは確信がありません。Xbox Oneは
### 17.2 信頼チェーン
Hypervisor/Host OS validates Catalog*.bin PE Authenticode signature at boot (FORCE_INTEGRITY)
↓
Catalog payload contains hashes of protected binaries on that volume
↓
Code Integrity checks each binary's hash against catalog at load time
↓
Individual binaries carry no Authenticode signatures of their own
これは**カタログベース信頼**モデルである。単一のMicrosoft署名がボリューム内の非常に多くのファイルをカバーする。個々のバイナリおよびおそらく他のファイルタイプは無署名であり、それらの整合性はカタログへの所属によって保証される。
**エントリ数とサイズ:**
| ボリューム | カタログ | ペイロードサイズ | エントリ数(÷32) |
|---|---|---|---|
| C:\ | Catalog000.bin | 5,533,696 バイト | 172,928 |
| C:\ | Catalog001.bin | 253,952 バイト | 7,936 |
| C:\ | Catalog002.bin | 57,344 バイト | 1,792 |
| C:\ | Catalog003.bin | 176,128 バイト | 5,504 |
| M:\ | Catalog000.bin | 5,537,792 バイト | 173,056 |
| M:\ | Catalog001.bin | 258,048 バイト | 8,064 |
| M:\ | Catalog002.bin | 61,440 バイト | 1,920 |
| M:\ | Catalog003.bin | 180,224 バイト | 5,632 |
すべてのカタログのペイロード長(PEセクション内)は余りなく正確に32で割り切れ、36、40、その他の一般的なレコードサイズでは一貫して割り切れない。これは、ペイロードが**32バイトレコード**のフラット配列であることを強く示唆している。
**ハッシュアルゴリズム:** 既知のバイナリのファイル全体SHA-256およびSHA-1はカタログ内で見つからず、単純なファイル全体ハッシュは除外される。最も可能性の高い形式は**Authenticodeページハッシュ**であり、PEファイルのマップされたセクションの各4KBアラインされたページが個別にハッシュされるWindows CI標準である。これにより、ファイルごとに、ページごとに1つの32バイト(SHA-256)エントリが生成され、膨大なエントリ数(C:\だけで172,928エントリ)が説明できる。
**順序:** ペイロードはハッシュ値でソートされていない。順序付け方式は確定されていない。可能性としては、ファイルパスハッシュ順、インストールパッケージ順、ボリュームのファイルセット内のページオフセット順、あるいは何らかのNTFS特性による順序などが含まれる。
**ヘッダーなし:** ペイロードの最初の128バイトには、認識可能なASCIIマジックも、数やバージョンを示す可能性のある小さな整数フィールドも、標準ヘッダーと一致する構造も含まれていない。ハッシュ配列は、前文なしでペイロードのバイト0から始まる。
### 17.3 ロード時限定の実施
コード整合性の実施は**ロード時のみ**である。バイナリがカタログハッシュ検証を通過し、ページがメモリにマップされると、CIはそれ以上関与しない。HVCI(ハイパーバイザー保護コード整合性)がSystemOSで有効であれば、ロードされたコードページをハイパーバイザーのページテーブルレベルでハードウェア読み取り専用にすることで、結果として生じるTOCTOU(Time-of-check to time-of-use)ウィンドウを閉じることができる。**HVCIはSystemOSでオフであることが確認されており**、`IsSecureKernelRunning = 0x0`(セクション18参照)。したがって、TOCTOUウィンドウが存在する。
### 17.5 Host OSコンポーネント
2つのドライバが、アクセス可能なすべてのファイルシステムボリュームに存在しないことが確認されており、SRAが初期化される前にHost OSによって直接ロードされる:
- `XVIO.SYS` Xbox仮想I/Oコア(レジストリサービスエントリなし、どのボリュームにも存在しない)
- `FLTMGR.sys` フィルターマネージャー
- `XSraFlt.sys` SRAフィルター(サービスエントリは存在するが、どのボリュームにも対応するファイルがない)
これらのコンポーネントは、カタログ信頼モデルの完全に外側に存在する。SystemOSの完全なカーネルアクセスがあっても改ざんすることはできない。なぜなら、それらはSystem OSの親であるHostOSのロードが始まる前にブートローダーによってマップされるからである。
Xbox Oneコンポーネントの情報は[ここ](https://xboxoneresearch.github.io/wiki/boot/vbi/)で確認できるが、HostOSがこれまでに変更されていないとは完全には確信できない。
---
## 18. HVCIステータス
> **影響:** HVCIがオフの場合、コード整合性はロード時のみとなる。バイナリがメモリにマップされると、メモリ内での改変を防ぐハードウェアによる実施は存在しない。したがって、セクション17.3で説明したTOCTOUウィンドウは開いた状態となる。意図されたセキュリティ境界は、SystemOSがERA(GameOS)と通信しないことに完全に依存したままである。
`HKLM\SYSTEM\CurrentControlSet\Control\DeviceGuard\Scenarios\KeyGuard\Status`
IsSecureKernelRunning = 0x0
セキュアカーネル(VTL1)はSystemOS上で実行されておらず、HVCIがアクティブになり得ないことを裏付けている。これは意図的なパフォーマンストレードオフであり、ゲームループのカーネルアクティビティにVTL1の負担はない。セキュリティ境界はハイパーバイザーパーティション自体であり、パーティション内のメモリ保護ではない。したがって、コード整合性モデル(セクション17)は、TOCTOU保護なしのロード時限定となる。
---
## 19. sevpipeハイパーバイザーIPC名前空間
Xbox固有のすべてのプロセス間およびパーティション間通信の主要IPCバックボーンとして機能する、カスタムWindows名前付きパイプデバイス名前空間(`\\.\sevpipe\`)。プロトコルレベルではハイパーバイザー構造ではなく、その下では標準のWindows名前付きパイプセマンティクスであり、通常のパイプ列挙ツールから隠すためにカスタムデバイス名前空間の下に登録されている。
### 19.1 完全なパイプ一覧
EtxForwarder <- telemetry data
EtxForwarderToUploaderControl <- telemetry control
XrfsPipe <- cross-partition filesystem
ERASwapChainPipe <- ERA framebuffer (dynamic)
ERAPresentPipe <- ERA present signals (dynamic)
XvioAudioPipe <- ERA audio (dynamic)
XvioAudioEventPipe <- ERA audio events (dynamic)
XboxOneAudioStatePipe <- system audio state
XTF_SYSTEM_TO_TITLE <- XTF command channel (dynamic)
XTF_TITLE_TO_SYSTEM <- XTF response channel (dynamic)
CloudStreamingServer <- xCloud (dynamic)
\SEVPipe\epmapper <- Xbox RPC endpoint mapper
\SEVPipe\epmapperX <- extended RPC endpoint mapper
動的パイプは、ERAがアクティブな場合、XTFセッションが実行中の場合、またはxCloudがストリーミング中の場合にのみ存在する。
### 19.2 アクセス制御マップ
EtxForwarder <- DevToolsUser WRITE
EtxForwarderToUploaderControl <- DevToolsUser WRITE
XrfsPipe <- SYSTEM only
ERASwapChainPipe <- SYSTEM only
ERAPresentPipe <- SYSTEM only
XvioAudioPipe <- SYSTEM only
XTF_SYSTEM_TO_TITLE <- SYSTEM only
### 19.3 テレメトリパイプライン
Process calls EtxEventWrite()
↓
EtwPlus.dll
↓ writes to
\\.\pipe\EtxUploader
↓
EtwUploader.exe (PID 1808, SYSTEM)
↓ forwards to
\\.\sevpipe\EtxForwarder <- data
\\.\sevpipe\EtxForwarderToUploaderControl <- control
↓
NetworkTransferManagerService.exe (PID 2040, SYSTEM)
↓
[unknown endpoint, dynamic library load]
↑
DevToolsUser can inject at EtxForwarder and control pipe
`EtwPlus.dll`はXbox固有であり(`FileDescription: Xbox ETW Plus API`)、バージョン`10.0.26100.7010`。Suspend/resumeエクスポートは製品版ビルドではスタブである可能性が高く、3つのエクスポートが同じRVAを共有している。
### 19.4 videoserver.exe RTSPスクリーンキャプチャ(おそらく[Xbox Dev Mode Companion](https://apps.microsoft.com/detail/9nblggh519cp)の残骸)
ポート: 11442(バイナリ内にハードコード)。依存関係:
Windows.Xbox.Graphics.Display.Internal.DisplayManager
Windows.Xbox.System.Internal.GameStreaming.GameStreamingAgent
Windows.Xbox.Media.Capture.ApplicationClipShell
**主要な発見:** 正常に機能していないように見える。コンソールの内外からビデオストリームにアクセスする方法は見つかっていない。
ハードコードされたパス/フラグ:
DisableXboxDevToolsTelemetry <- env var to suppress its telemetry
VideoServerMaxPacketSize <- configurable via env var
EnableVideoServer <- WdConfig flag confirmed here
OSDATA\...\DevkitProperties <- reads devkit properties at runtime
### 19.5 OneSettings / Windows Updateスキーマ
Xboxには、`XBOXMOBILE`ターゲティングエントリと`WCOS`レジストリハイブパスを含む完全なWindows Updateターゲティングスキーマが搭載されており、Xbox Series SがHoloLensやSurface Hubと共有されるWindows Core OS(WCOS)基盤上で動作することを裏付けている。このOSは軽度にカスタマイズされたWindows 11 24H2であり、専用に構築されたプラットフォームOSではない。
---
## 20. ハイパーバイザーパーティショントポロジ
`HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Virtualization\HvSocket\Addresses`
LocalAddress = {REDACTED_GUID} SystemOS partition GUID
ParentAddress = {REDACTED_GUID} null parent
SystemOSは自身が**ルートパーティション**であると認識している(誤りであり、Host OSがルートである)。ERAゲームパーティションはSystemOSの子である。ERAパーティションのGUIDは、アクセス可能なレジストリパスを通じてSystemOSに公開されておらず、ランダム化されている可能性がある。
### HvSocketパーティション間ワイルドカードエンドポイント
`HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Virtualization\HvSocket\WildcardDescriptors`
SHA1サービスSID計算によって解決される4つのサービスGUID:
| GUID | サービス | 目的 |
|------|---------|------|
| `REDACTED_GUID` | DiagTrack | テレメトリパイプ1 |
| `REDACTED_GUID` | DiagTrack | テレメトリパイプ2 |
| `REDACTED_GUID` | RpcSs | パーティション間RPC |
| `REDACTED_GUID` | EventLog | パーティション間イベント転送 |
DiagTrack、RpcSs、EventLogは第一級のパーティション間市民である。ゲームテレメトリ、RPC呼び出し、イベントは、ERA内で実行されるものには見えない専用のハイパーバイザーソケットチャネルを通じて、ERAからSystemOSへパイプされる。
---
## 21. グラフィックス構成
`HKLM\SYSTEM\CurrentControlSet\Control\GraphicsDrivers`
WddmVersion_Max = WddmVersion_Min = 0x9C4 (WDDM 2.5) pinned, not negotiated
DisableCcdDatabase = 1
DisableHpdHandling = 1
DisableUsingMonitorPowerForSimulatedMonitor = 1
DirectFlipMemoryRequirement = 0x40 (64MB)
PinnedMemoryLimit = 0x59 (89MB)
AdapterMPO_3 = 1 MPO tier 3 enabled
WDDMバージョンは交渉ではなく固定されており、ディスプレイパイプラインはファームウェアとハイパーバイザーが所有し、WDDMはモニター処理に関与しない。MPOティア3(`AdapterMPO_3`)は、パーティション間のソフトウェアブリットなしでERAゲームフレームバッファとSystemOS UIを合成する方法である: 各サーフェスが個別のハードウェアオーバーレイプレーンを占有する。
---
## 22. WdApp.exeパッケージマネージャーおよびアプリライフサイクルツール
`J:\tools\WdApp.exe`は、Xboxアプリプラットフォーム向けの完全なパッケージマネージャーおよびアプリケーションライフサイクルマネージャーである。完全なコマンドサーフェス:| Command | Purpose |
|---------|---------|
| `install` | ウェブサーバー、ネットワーク共有、またはローカルパスからパッケージ化されたビルドをストリーム配信する |
| `register` / `unregister` | ルーズファイルのアプリパッケージを登録/登録解除する |
| `registerdrive` | ドライブ全体のすべてのアプリケーションを一度に登録する |
| `registernetworkshare` | オプションの資格情報を使用してUNCネットワーク共有からインストールする |
| `registerscratch` | 開発スクラッチドライブから登録する |
| `registertitlescratch` | ERAタイトルスクラッチドライブから登録する |
| `launch` | AUMID、exeパス、またはURIで起動する |
| `terminate` / `suspend` | 実行中のアプリを停止または一時停止する |
| `uninstall` | アプリまたはその一部をアンインストールする |
| `list` | 登録済みのすべてのアプリケーションを一覧表示する |
| `listdlc` | インストール済みDLCを一覧表示する |
| `move` / `copy` | パッケージを移動またはコピーする |
| `movedrive` / `copydrive` | ドライブ上のすべてのパッケージを移動またはコピーする |
| `applyconfig` | 指定した設定または `game.config`/`.xvd` を使用してERAゲームOSを起動する |
| `queryconfig` | 実行中のゲームOSの4部構成のバージョン番号を出力する |
| `queryversioninfo` | 指定されたパッケージのゲームOSバージョンを照会する |
| `collectxip` | XIPトレースを収集する |
| `lastgamedetails` | 最後に実行されたゲームに関する詳細を取得する |
| `installkey` | コンソールにキーをインストールする |
| `installplan` | コンソールにプランをインストールする |
| `overlayfolder` | パッケージオーバーレイフォルダーを管理する |
### 注目すべき発見
**`applyconfig [game.config | ERA.xvd]`** コマンドラインからERAパーティションブートを直接制御する。`.xvd` XVDディスクイメージまたは `game.config` 設定ファイルのいずれかを受け入れる。引数なしで実行すると、最後に使用されたゲームOSを起動する。以前のゲームコンテキストがないシステムでは、`0x87E50002`(ERAファシリティ、XVDが見つからない)が返される。
**`/drive=Retail`** `install` コマンドはターゲットドライブ指定子として `Retail`、`Development`、`Ext1-Ext7` を受け入れ、開発シェルから小売ストレージパーティションへの直接パッケージインストールを可能にする。
**`/WaitToExit`** を `launch` で使用すると、WdAppが起動したプロセスの親として所有し、終了コードをキャプチャする。システムアプリはこれを `0x8D160121`(Xbox PLMファシリティ、ライフサイクルの親が不正)で拒否する。`/WaitToExit` なしで起動すると、ShellCoreServiceがライフサイクルの所有権を保持するため成功する。
**`launch` AUMIDエンコーディング** システムアプリのAUMIDには、`.xboxunattend` QuickActionsスクリプトで使用されるパターンと一致するbase64エンコーディングが必要である。```
WdApp.exe launch <base64(FamilyName!AppId)>
Device Portal Web サーバー(WebManagement.exe、PID 2344)は、M:\windows\WebManagement\www\default\ からフロントエンドを配信します。完全な REST API スキーマは js\RestDocumentation.json(40KB)に文書化されています。
認証: HTTPS ポート 11443 での HTTP Basic 認証。資格情報は、開発者モードのアクティベーション時に設定された Device Portal のユーザー名と PIN です。
一部のエンドポイントには、小売開発者モードコンソールで無効化する制限フラグが付いています:
ユーザーモードライブプロセスダンプ(/api/debug/dump/usermode/live?pid=<pid>)は nonRestrictable であり、小売開発者モードでも成功します。
GET /api/resourcemanager/processes で取得。注目すべきプロセスの抜粋:
xnetsharedservice.exe の 3 つのインスタンス(PID 2032、2764、2844)が SYSTEM として同時に実行されており、異なるクロスパーティションチャネル用に個別のネットワークブリッジインスタンスが存在することを示唆しています。
eracontrol.exe のワーキングセット 991KB は、ゲームが実行されていない状態であることから、これが純粋にイベント駆動型であり、アイドル時にはほぼ状態を保持せず、ERA ライフサイクルイベント時のみ起動することを裏付けています。
影響:
Deploy:\ボリュームはユーザー空間からのアクセスがローカルに制限されていますが、この制限はS:\Deployment\SoftwareDistribution\ジャンクションを通じたネットワーク共有パスにより回避されます。更新 ETL トレース、WU データベースパス、SLS エンドポイント URL(プラットフォーム識別子とインストール済み言語パックを含む)は完全に読み取り可能です。
S:\Deployment\SoftwareDistribution\ は、非表示の Deploy:\ カーネルデバイスボリュームへのジャンクションです。
2 つの更新セッションがキャプチャされました:
セッション 1 2026年3月9日 18:25:23
DataStore.edb は存在しませんでした(このセッションで新規作成)https://slscr.update.microsoft.com/SLS/{REDACTED_GUID}/x64/10.0.26100.7010/00x8024402C(インターネットなし)で即座に失敗。更新チェックは完了しませんでした。セッション 2 2026年3月10日 03:59:18
DataStore.edb を読み込み0x8024402C で失敗03:59:24 にオンライン化、サービスがすでに失敗してセッションを放棄した 6 秒後04:09:19 に終了コード 0x240001 で正常にシャットダウン注記: 両セッションとも、WU サービスが初期化された時点でネットワークが利用できず、更新チェックを放棄しました。セッション 2 では、サービスが発見フェーズをすでに終了した 6 秒後にオンラインになりました。これは、初期ネットワークチェックが失敗すると更新パイプラインに再接続リトライが存在しないことを示唆しています。
https://slscr.update.microsoft.com/SLS/{SERVICE_GUID}/x64/{BUILD}/0
?CH=928 catalog hash / change counter (セッション1では928、セッション2では19)
&L=en-US;... 31 個のインストール済み言語パック
&PT=0xc0 プラットフォームタイプ: Xbox
&WUA=1451.2510.27012.0 Windows Update Agent バージョン
PT=0xc0 は、すべての更新チェックに埋め込まれた Xbox プラットフォーム識別子です。CH はセッション間で 928 から 19 に減少しており、データベースが再作成されるとリセットされるカタログ状態カウンターと一致します。
[REDACTED] Xbox Windows Update サービス構成識別子。SLS\ サブディレクトリに存在し、すべての SLS リクエスト URL に埋め込まれています。
デバッグ計装を介して漏洩した内部 Azure DevOps ビルドパス:
C:\__w\1\s\src\Client\comapi\DiscoveryJob.cpp
C:\__w\1\s\src\Client\comapi\XxxJob.cpp
C:\__w\1\s\src\Client\lib\DownloadFile\DownloadSession.cpp
C:\__w\1\s\src\Client\Engine\handler\UHManager\uhmgr.cpp
C:\__w\1\s\src\Client\lib\util\fileutil.cpp
C:\__w\1\s\src\Client\lib\wusyshelper\wusyshelper.cpp
C:\__w\1\s\ は標準の Azure DevOps セルフホストエージェントのワークスペースパスです。Xbox Windows Update クライアントはデスクトップ Windows Update とソースを共有しており、Xbox プラットフォームターゲット向けにコンパイルされた同じコードベースです。
タイマー GUID REDACTED_GUID はセッション 1 で設定され、セッション 2 への再起動後も存続しました。これは DataStore.edb の外部(おそらくレジストリ内)に保存され、データベースのライフサイクルとは独立して次の更新チェックをスケジュールします。
xbtplinkc.sys XVIO トランスポートリンククライアントインポート分析により、完全な XVIO リングバッファ API サーフェスと GPA 変換メカニズムが明らかになります:
XvioAcquireRingBufferRundown / XvioReleaseRingBufferRundown
XvioSignalFlag
XvioWriteRingBuffer
XvioGetIncomingRingBufferAvailableBytes
XvioReadRingBufferEx
XvioInitialize
XvioGetRingBufferContext
XvioCreateRingBuffer
XvioGetReservedMemory reserved hypervisor memory carve-out
XvioTranslateXrfsGuestGpa translate ERA guest physical address for SystemOS access
XvioTranslateXrfsGuestGpa はクロスパーティション共有メモリプリミティブです。ERA は SystemOS にゲスト物理アドレスを渡し、SystemOS はこの関数を呼び出して使用可能なマッピングを取得します。これは GameDVR キャプチャ、フレームバッファ合成、クロスパーティションオーディオの背後にあるメカニズムです。
xbtplinkc はまた、xpalk.dll から XpalIsCapabilityEnabledByVm をインポートします。ByVm サフィックスは、OS レベルではなくハイパーバイザーレベルで機能状態を照会し、先に進む前にハイパーバイザー自体が機能を有効にしているかどうかを確認していることを示します。
xrfs.sys Xbox Runtime Filesystem完全な NT ファイルシステムドライバー。インポート分析により、Cache Manager(Cc*)、MDL I/O、ファイルロック(FsRtl*)、セキュリティ記述子の構築、ディレクトリインデックス用の AVL ツリー汎用テーブルなど、本物のファイルシステムセマンティクスを実装していることが確認されます。
主要な特徴的インポート:
FsRtlRegisterFileSystemFilterCallbacks
IoRegisterFileSystem
RtlCreateSecurityDescriptor / RtlCreateAcl / RtlAddAccessAllowedAce
XpalIsCapabilityEnabled
WppRecorder.sys in-memory ETW trace recorder
xrfs.sys は XVIO を直接インポートしません。代わりに、xbtplinkc.sys が XvioTranslateXrfsGuestGpa をインポートします。XRFS はファイルシステム層であり、XVIO はその下で GPA 変換を提供します。
ERA game process
↓
ERA kernel / XVIO guest side
↓ [hypervisor shared memory / GPA translation via XvioTranslateXrfsGuestGpa]
SystemOS: xbtplinkc.sys (ring buffer transport)
↓
SystemOS: xrfs.sys (NT filesystem semantics)
↓
S:\Shares\TitleScratch (junction, target redacted by OS)
↓
SystemOS userspace / shell
主要な Xbox 固有インポート:
XCRDAPI.dll XVD マウントの直接制御:
XCrdSetEraLaunchMapping associates XVD content with ERA partition pre-launch
XCrdMountContentType mounts content categories into ERA
XCrdUnmount tears down ERA content mounts
XCrdOpenAdapter / XCrdCloseAdapter
XCrdQueryDevicePath / XCrdBuildPath
XCrdDeleteXVD
XCrdSuspendResumeIoBalancer
XCrdIsCorruptionError
XCrdFreeDevicePathBuffer
ntdll.dll
NtOpenPartition
RtlSetProcessIsCritical
RtlWaitForWnfMetaNotification / RtlPublishWnfStateData
NtQueryWnfStateData / NtDeleteWnfStateName
ext-ms-win-xblauth-console-l1-1-0.dll(遅延読み込み):
XblaInitialize bootstraps Xbox Live auth identity into ERA partition
ext-ms-win-ntuser-rim-l1-1-0.dll(遅延読み込み):
RIMAddInputObserver / RIMRemoveInputObserver intercepts raw controller input for ERA routing
SspiCli.dll:
LogonUserExExW creates user logon tokens for the ERA session
ext-ms-win-session-usermgr-l1-1-0.dll(遅延読み込み):
UMgrOpenProcessHandleForAccess
RPCRT4.dll:
RpcServerInqCallAttributesW / I_RpcBindingInqLocalClientPID RPC caller identity verification
eraproxyapp.exe は、ERA パーティションとシェル間の SystemOS 側コンポジター兼 IPC ブリッジです。339KB で、eracontrol.exe(249KB)よりかなり大きいです。
フレームバッファ合成:
d3d11.dll: D3D11CreateDevice
dcomp.dll: DCompositionCreateDevice
AVRT.dll: AvSetMmThreadCharacteristicsW / AvSetMmThreadPriority / AvRevertMmThreadCharacteristics
eraproxyapp は、ERA フレームバッファを SystemOS シェルに合成するための D3D11 デバイスと DirectComposition デバイスを作成します。AVRT マルチメディアスレッド優先度により、低遅延のフレーム配信が保証されます。
ALPC 経由のクロスパーティション IPC:
ntdll: NtAlpcConnectPort / NtAlpcAcceptConnectPort
NtAlpcSendWaitReceivePort
NtAlpcCreatePortSection / NtAlpcCreateSectionView
NtAlpcDeletePortSection / NtAlpcDeleteSectionView
NtAlpcDisconnectPort / NtAlpcCancelMessage
ALPC ポートセクションはゼロコピー共有メモリを提供します。ERA ゲームフレームバッファはコピーされず、両方のアドレス空間に同時にマッピングされる ALPC セクションビューを介して共有されます。
プライベート名前空間(セキュア IPC チャネル): CreatePrivateNamespaceW / OpenPrivateNamespaceW CreateBoundaryDescriptorW / AddSIDToBoundaryDescriptor / DeleteBoundaryDescriptor ClosePrivateNamespace bcrypt: BCryptGenRandom / BCryptHashData / BCryptCreateHash / BCryptFinishHash
eraproxyapp は、SID ベースの境界記述子を備えたプライベートオブジェクト名前空間を確立します。これは ERA と SystemOS にのみ表示される名前付きオブジェクト名前空間です。BCrypt は境界のランダムキー素材を提供します。
タイトル ID とオーディオ: XboxLiveTitleId.dll: GetCurrentXboxLiveInfo identifies the running title xamapi.dll: XamApiDisableLayoutScaling ConsoleGlobalization.dll: GetConsoleGlobalizationInfo api-ms-win-audiocore-spatial-config-l1-1-0.dll: Create_SpatialAudioDevicePropertyReader
名前付きパイプ:
CreateNamedPipeW / ConnectNamedPipe / DisconnectNamedPipe
XblAuthConsoleExt.dll ハードウェア ID と認証(46 エクスポート)コンソール ID:
XblaGetConsoleCert / XblaGetConsoleId / XblaGetConsoleSerialNumber
XblaGetDevkitType retail vs devkit detection
XblaGetXblSandbox Xbox Live environment (retail/preview/dev)
タイトル ID:
XblaGetXboxLiveTitleId
XblaGetTitleAttestation / XblaGetTitleConsoleGeneration
暗号:
XblaSignDigest sign with console private key
XblaGetAttestation / XblaGetTpmPcrAttestation fTPM PCR boot chain measurements
XblaProcessChallenge / XblaProcessSpToken
XblaGetTpmPcrAttestation は、コンソールが完全なブートチェーン構成証明を実行することを確認します。Microsoft は、コンソールが Xbox Live に認証するときにブートシーケンスの正確な状態を暗号的に検証できます。
xamapi.dll Xbox Application Manager 互換シム(24 エクスポート)SystemOS コンテキストで実行される ERA アプリ用に標準 Win32 API をオーバーライドします:
ClipCursorOverride / GetClipCursorOverride
GetCursorPosOverride / SetCursorPosOverride
GetMonitorInfoWOverride / GetSystemMetricsOverride
XamApiDisableLayoutScaling / XamApiSetLayoutScaleOverride
AdjustDeviceIdMappingForKeyEventBefore / After
UserContextExtInitialize / SetToken / Cleanup
これは、SystemOS が標準の Win32 ディスプレイおよび入力 API を期待するコンポーネントに、説得力のある Windows PC 環境を提示する方法です。
xboxsynthetickm.dll 合成入力インジェクション(M:\、12 エクスポート)ハードウェアオーバーレイボリューム M:\ に配置(アプリケーション層ではなくハードウェア層として扱われる):
SyntheticInput_CreateKeyboard / CreateMouse / CreateMouseAbsolute
SyntheticInput_InjectKeyboardInput / InjectMouseInput
SyntheticInput_ReadKeyboardOutput
これは xCloud がネットワークパケットをローカル入力イベントに変換する方法です。コンソールはハードウェアレベルで合成入力を物理入力と区別できません。
xboxcloudstreaming.dll xCloud ストリーミングエンジン(2 エクスポート)GetCloudStreamManager
ShutdownCloudStreamManager
XboxLiveTitleId.dll ランタイムゲーム検出(12 エクスポート)GetCurrentXboxLiveTitleId / GetCurrentXboxLiveInfo
GetProcessXboxLiveInfo / GetPackageXboxLiveInfo
AuthenticateSystemXboxLiveTitle
XBBlackbox.dll フライトレコーダー単一エクスポート: BlackboxServiceMain
XBCastRecv.dll Miracast レシーバー(22 エクスポート)GetWiFiDirectDeviceCategoryForCurrentPlatform
IsMiracastReceiverStartAllowedWithoutApp
GetEdidForCurrentDisplayDevice
Xbox.Shell.Api.dll シェル統合(44 エクスポート)CheckGamingPrivilegeSilently / WithUI
ShowProfileCardUI / ShowGameInviteUI
PlaySystemSound
AreWebAppsEnabled
XAccessoriesGip.dll:
PendragonGIP_SendGIPMessage
PendragonGIP_SetMessageCallback
PendragonGIP_Start / Stop
Hypervisor (lowest layer, hardware virtualization)
↓
Host OS (Root Partition) hidden from SystemOS, management OS
├── 108MB fixed RAM carve-out
├── 5 core system processes
├── **XVIO.SYS** Xbox Virtual I/O core (ring buffers, GPA translation)
├── **XSraFlt.sys** GPU security filter (display capture interception)
├── **sevpipe driver** secure IPC namespace root
├── **xvncbus.sys** Durango Virtual XVNC Bus Driver
├── **xvnc.sys** XVSC miniport
├── **xrfs.sys** NTFS Filesystem driver
└── Hardware device ownership (GPU, network, storage)
↓ (creates child VMs with virtualized hardware)
SRA SystemOS Partition (Windows 11 24H2 / WCOS, child partition)
├── Total RAM: 6400MB (dynamically allocated)
├── 89-95 processes
├── sevpipe IPC backbone (client views)
├── ERA lifecycle management (eracontrol.exe)
├── Telemetry pipeline (EtwUploader->NetworkTransferManager)
├── XTF toolchain (J:\tools\, always present on retail)
├── Device Portal web server (:11443)
└── Virtualized hardware views (GPU, NIC, storage via Host OS)
↓ (manages as child)
ERA GameOS Partition
├── Game title process
├── XVIO client view
└── All hardware access proxied: ERA->SystemOS->Host OS
Host OS Boot (invisible to research, complete assumptions):
1. Host OS loads from its own protected storage partition
2. Normal Windows driver loading within Host OS:
- XVIO.SYS (registers as \Device\Xvio)
- XSraFlt.sys (filters GPU commands)
- sevpipe driver (creates \\.\sevpipe namespace)
- xvncbus.sys/xvnc.sys (virtual NIC root)
3. Host OS creates SystemOS VM with virtualized hardware, and symlinks images
4. SystemOS never sees Host OS drivers or filesystem
SystemOS View (what research can tell):
1. Sees virtualized devices provided by Host OS
2. XVIO appears as a service, not a driver (xvmctrl.sys interface)
3. sevpipe appears as a namespace but server runs in Host OS
4. Cannot enumerate or access Host OS drivers/files
↓
ERA: XVIO guest call->SystemOS
↓
SystemOS: xvmctrl.sys->xvioc.sys->Host OS via hypercall
↓
Host OS: XVIO.SYS validates request
↓
Host OS: Programs actual GPU MMU
↓
Host OS: Returns GPA mapping token to SystemOS
↓
SystemOS: Forwards to ERA
HDRGameCalibration WinMDには驚くべきことに、一見したところ Xbox WinRTコントラクトレジストリの全体が含まれている。100以上のコントラクトが、プラットフォームで利用可能なすべてのファーストパーティWinRT APIサーフェスを定義している。
Kinectは維持されているコントラクト。 Windows.Kinect.KinectContract v1は、非推奨ではないファーストクラスコントラクトとして存在しており、アクティブなスタック(C:\Windows\System32\ht)およびWdConfigのKinectSensorEnabled=trueと一致している。Kinectビジョンは、物理的なKinectを搭載していないハードウェアでも積極的に維持されているインフラストラクチャである。完全なオーケストレーションパイプライン(nuiservice.exe、KinectMediaSource.dll、3つの推論トラック、出力ルーティング)はセクション33で文書化されている。
広告は内部インフラストラクチャ。 AdsContractがInternalコントラクトであり公開SDK APIではないことは、広告配信がサードパーティSDK統合ではなく、認証やストレージと同じレベルでOSに組み込まれていることを意味する。
小売版でのテスト自動化。 Windows.Xbox.TestAutomationContractは小売版ユニットに搭載されており、開発者モードツールがWindows.Xbox.TestAutomationContractにアクセスできることと一致している。
UserMgr2は、アクティブなログインセッションを所有する対話型ユーザーアカウントである。NTUSER.DATはロックされている(UserMgr2がライブである)。プロファイルから得られた主な発見事項は以下の通り:
| パス | 内容 |
|---|---|
ntuser.ini | 3つの改行 |
AccountPictures\UserImage.jpg | Microsoftアカウントの1080x1080の写真1枚。ゲーマーピクチャシステムとは別(セクション3.2を参照) |
AppData\Local\Packages\ |
デバイスポータルのジャンクションは、DevToolsUser権限ではなくUserMgr2権限を使用して解決される(セクション1.2および未解決の質問12を参照)。UserMgr2はDevToolsUserよりも高い特権レベルを持ち、UserMgr2は対話型セッションの所有者である一方、DevToolsUserは制限された開発者アクセスアカウントである。
nuiservice.exe(3.8MB、SYSTEMとして実行、常時稼働)は、Kinect/NUI認識スタック全体のオーケストレーションプロセスである。ボディ、フェイス、オーディオという3つの並列推論トラックをホストしており、それぞれが独立した処理パイプラインとして動作し、ファイバーグラフを介して協調的にスケジューリングされ、D3D11 GPU推論デバイスによって支えられたIOCPポンプを通じてフレームが供給される。
nuiservice.exe
├── D3D11CreateDevice <- GPU inference device
├── IOCP frame pump <- async frame dispatch
└── Fiber graph <- cooperative ML inference scheduling
フレームの取り込みはKinectMediaSource.dllによって処理される:
KinectMediaSource.dll
├── MFCreate2DMediaBuffer <- allocates 2D image frames (Media Foundation)
├── alignment.bin [10.7MB] <- depth -> 3D coordinate transform LUT
├── alignment_color.bin [5.7MB] <- depth/color registration
├── DeviceIoControl->\\.\KinectSensorControl <- talks to PetraXC.sys
└── CoCreateInstance {9178b0a6} <- self-registration CLSID
alignment.bin(10.7MB)とalignment_color.bin(5.7MB)は、生の深度センサーデータを3Dワールド空間座標に変換するため、および深度ピクセルをカラーピクセルにそれぞれ位置合わせするための事前計算済みルックアップテーブルである。
モデルはvvtechs.dll(NuiVisionCreateFactory)を介してX:\ht\versions\{1.0.0|1.0.1|1.0.2}\から読み込まれる:
KinectMediaSource.dllからの深度フレームモデルはC:\Windows\System32\ht\から読み込まれる(完全なモデル一覧はセクション3.3を参照):
LogonUserExExWに直接供給される(下記の出力ルーティングを参照)speechwov.dllによって処理される:
speechwov.dll
├── SpeechWov_Create / UpdateAcousticModels
├── SpeechWov_ProcessRecognition
└── Output->wake word events, speech recognition events
speechwov.dllはウェイクワードおよび音声認識エンジンである。UpdateAcousticModelsは、音響モデルが実行時に更新可能であることを示している(言語パックやマイクキャリブレーションの変更)。これはシステムレベルの"Hey Cortana" / 音声コマンドインフラストラクチャである。
nuiservice.exeは推論結果を複数のチャネルを通じて配信する:
RtlCapabilityCheckはアクセス制御メカニズムである。プロセスはNUIデータを受信するために適切なNTケイパビリティを保持している必要がある。これにより、ゲームタイトルアクセス、シェルアクセス、開発者アクセスが個別にゲート制御される。
WinRTコントラクトWindows.Kinect.KinectContract v1(セクション31を参照)は、このパイプラインへのゲームタイトルアクセスを提供する小売版向けサーフェスである。
Camera Sensor Hardware
└── ciumd_wddm.dll <- most likely WDDM user-mode camera driver
└── PetraXC.sys (KinectSensorControl) <- WDF 1.11, disabled until device arrives
└── \\.\KinectSensorControl
nuiservice.exe [always running, SYSTEM]
└── KinectMediaSource.dll->DeviceIoControl->\\.\KinectSensorControl
├── Track 1: vvtechs.dll (body)
├── Track 2: FaceDetector/FaceRecognition + RF models (face)
└── Track 3: speechwov.dll (audio)
└──->WNF / LogonUserExExW / named pipe / RPC / State Repository
調査は開発者モードの小売版Xbox Series Sで実施された。すべてのアクセスはMicrosoftが提供する開発者モードインフラストラクチャを通じて行われた。
| ツール | 目的 |
|---|
| Windows エクスプローラー | Xbox ネットワーク共有 (手順: https://XBOX:11443/#File%20explorer > 参照) |
SSH (DevToolsUser + VS PIN) | SystemOS へのシェルアクセス |
mklink /J | ネットワーク共有経由でドライブを公開するための NTFS ジャンクション作成 |
Device Portal (https://XBOX:11443) | REST API、ファイルブラウザ、プロセス一覧、ライブダンプ |
dumpbin /IMPORTS、dumpbin /EXPORTS | ネットワーク共有上の PE バイナリの静的解析 |
| Python | REST API を自動化するスクリプト |
| Phasor | コンソール上で使用するスクリプトランタイム (ネットワーク共有経由でコピーし、SSH 経由で実行) ダウンロードはこちら |
reg query | SSH シェルからのレジストリ列挙 |
WdApp.exe | パッケージマネージャーおよび ERA ライフサイクル制御 (コマンドサーフェスの列挙) |
WdConfig.exe | コンソール設定 API の列挙 |
| ETL トレース分析 | S:\Deployment\SoftwareDistribution\ ジャンクション経由の Windows Update パイプライン |
| ライブプロセスダンプ | GET /api/debug/dump/usermode/live?pid=<pid> |
| Ghidra | COM インターフェース / ドライバーの解析 |
| IDA Pro | 複雑な DLL および COM インターフェースのコールグラフ |
| XboxTools | さまざまな用途のための自作ユーティリティ集 |
| 名前空間 | ベース URI | 主要エンドポイント |
|---|
| App Deployment | /api/appx/packagemanager/ | インストール、アンインストール、パッケージ一覧、コンテンツグループ |
| Device Manager | /api/devicemanager/ | 完全な階層型デバイスツリー |
| Dump Collection | /api/debug/dump/ | ライブプロセスダンプ、バグチェックダンプ、クラッシュ制御 |
| ETW | /api/etw/ | WebSocket 経由のリアルタイム ETW、プロバイダー列挙 |
| File Explorer | /api/filesystem/ | 参照、アップロード、ダウンロード、削除、名前変更 |
| Networking | /api/networking/ | ipconfig |
| OS Information | /api/os/ | マシン名、OS 情報 |
| Performance | /api/resourcemanager/ | CPU/メモリ付きライブプロセス一覧、システムパフォーマンス統計 |
| Power | /api/power/ | バッテリー、電源プラン、スリープスタディレポート |
| Remote Control | /api/control/ | 再起動、シャットダウン |
| Task Manager | /api/taskmanager/ | アプリの開始/停止、プロセスの強制終了 |
| Bluetooth | /api/bt/ | オーディオデバイスの列挙、ペアリング、接続 |
| WiFi | /api/wifi/ | インターフェース/ネットワークの列挙、接続、切断 |
| WER | /api/wer/ | Windows エラー報告レポートの列挙とダウンロード |
| WPR | /api/wpr/ | WPR パフォーマンストレースの開始/停止/ダウンロード、カスタムプロファイル |
| フラグ | 影響を受けるエンドポイント |
|---|
NoKernelDumps | ライブカーネルダンプ、バグチェックダンプのダウンロード |
NoUserModeDumps | ライブプロセスダンプ(PID 指定) |
NoBugcheckDumps | バグチェックダンプの一覧/ダウンロード/制御 |
NoWPRBootTracing | ブート時 WPR トレース |
NoPowerSchemeAccess | 電源プランの読み書き |
| ファイル | サイズ | 目的 |
|---|
RestDocumentation.json | 40KB | 完全な機械可読 REST API スキーマ |
workspace-definitions.js | 26KB | ポータルワークスペースパネルレイアウト(二次 API インデックス) |
common-xbox.js | 21KB | 基本 Device Portal に対する Xbox 固有のポータル追加機能 |
common.js | 56KB | 基本 Device Portal フレームワーク |
toolhost.js | 7.8KB | ツールホスティング層 |
rest.js | 19KB | REST 呼び出し構築ライブラリ |
d3.js | 570KB | D3 データ可視化 |
konva.js | 676KB | Canvas レンダリング |
| PID | イメージ | ユーザー | 備考 |
|---|
| 156 | (非表示) | SYSTEM | 66MB ワーキングセット、イメージ名は表示されず |
| 1456 | xbdiagservice.exe | SYSTEM | Xbox 診断サービス |
| 1808 | EtwUploader.exe | SYSTEM | ETW テレメトリアップローダー |
| 1832 | StorageManagement.exe | DefaultAccount | Xbox.StorageManagement UWP、IsRunning: false(一時停止中) |
| 1904 | ApplicationClipService.exe | SYSTEM | GameDVR クリップ管理、37MB ワーキングセット |
| 2032 | xnetsharedservice.exe | SYSTEM | クロスパーティションネットワークブリッジ |
| 2040 | NetworkTransferManagerService.exe | SYSTEM | Xbox コンテンツダウンロードマネージャー |
| 2344 | WebManagement.exe | SYSTEM | Device Portal Web サーバー |
| 2416 | XUpdMgr.exe | SYSTEM | Xbox Update Manager |
| 2436 | PRProvisioningService.exe | NETWORK SERVICE | PlayReady プロビジョニングサービス |
| 2460 | XNetConfig.exe | SYSTEM | ネットワーク構成 |
| 2468 | toolsautoexec.exe | SYSTEM | .xboxunattend スクリプト自動実行ランナー |
| 2572 | sihost.exe | DefaultAccount | シェルインフラストラクチャホスト、60MB ワーキングセット |
| 2836 | XboxDevService.exe | SYSTEM | Xbox 開発者サービスホスト、37MB |
| 3160 | xrun.exe | DefaultAccount | シェル側ゲーム起動コーディネーター |
| 3256 | MicrosoftXboxSecurityClip.exe | SYSTEM | ランタイム DRM 検証ホスト |
| 3600 | XboxUI.exe | DefaultAccount | ダッシュボードシェル UI、60MB ワーキングセット |
| 3844 | xrfssvc.exe | SYSTEM | XRFS クロスパーティションファイルシステムサービス、352KB(アイドル) |
| 3864 | xrmntcl.exe | SYSTEM | Xbox Runtime Mount クライアント |
| 3888 | xtfrtservice.exe | SYSTEM | XTF ランタイムサービス |
| 4320 | Guide.exe | DefaultAccount | Xbox Guide(Xbox.Guide_2602.0.2602.11003)、IsRunning: true |
| 4548 | eracontrol.exe | SYSTEM | ERA パーティションライフサイクルマネージャー、991KB ワーキングセット |
| 4660 | WWAHost.exe | DefaultAccount | Dev Home(Microsoft.Xbox.DevHome_1.0.2601.4001)、IsRunning: true |
| 6524 | CastSrv.exe | DefaultAccount | Miracast キャストサービス |
| レイヤー | コンポーネント |
|---|
| コンテンツ | XCRDAPI.dll (XVDのマウント/アンマウント/ストリーミング) |
| アイデンティティ | XblAuthConsoleExt.dll, XboxLiveTitleId.dll, pspsra.sys |
| DRM | MicrosoftXboxSecurityClip.exe, XCRDAPI.dll |
| ERA制御 | eracontrol.exe (NtOpenPartition, XCRDAPI, XblaInitialize) |
| ERAプロキシ | eraproxyapp.exe (ALPC、D3D11、DComp、プライベート名前空間) |
| 入力(ローカル) | xviokbd.sys, xviomou.sys, XAccessoriesGip.dll (Pendragon) |
| 入力(リモート) | xboxcloudstreaming.dll, xboxsynthetickm.dll |
| 入力フォーカス | xviomonc.sys (偽装) |
| NPFS? | VMNP.SYS NPFSドライバー(名前付きパイプファイルシステム?フィルターシステム?)。ERAの偽装にも使用される |
| ホストOS | xvmctrl.sys, XVIO.SYS, FLTMGR.sys (ファイルシステム上にはない) |
| クロスパーティションFS | xrfs.sys, xbtplinkc.sys, xrmntcl.exe, xrfssvc.exe |
| ディスプレイ | eraproxyapp.exe, xamapi.dll (Win32オーバーライド)、MPOティア3 |
| GPU | umd12ddi_arden.dll, newbe_xs.dll, xbsc_xs.dll, xg_xs.dll |
| オーディオ | XVMAudioServer.dll, XAudio2_8/9.dll, 空間オーディオ構成 |
| ネットワーク | xvnc.sys/xvncbus.sys (仮想NIC)、NetXVmService |
| 診断 | XBBlackbox.dll, xbdiagservice.exe, EtwUploader.exe, EtwPlus.dll (Etxパイプライン) |
| 更新 | XUpdMgr.exe, WUクライアント (wuauengcore.dll)、Deploy:\ ボリューム |
| シェル | Xbox.Shell.Api.dll, XboxUI.exe, Guide.exe, sihost.exe |
| ストリーミング | xboxcloudstreaming.dll, XBCastRecv.dll (Miracast) |
| 開発者ツール | WebManagement.exe (デバイスポータル)、XTFスタック(132ファイル)、WdApp.exe、unattendedsetuphelper.exe |
| 互換性 | xamapi.dll (Win32シム)、dxbc2dxil_xs.dll (DX11->DX12) |
| ビジョン / Kinect | nuiservice.exe (3.8MB、SYSTEM、常時稼働オーケストレーター)、KinectMediaSource.dll (フレーム取り込み、alignment.bin 10.7MB、alignment_color.bin 5.7MB)、vvtechs.dll (NuiVisionCreateFactory、ボディトラック)、speechwov.dll (ウェイクワード/音声トラック)、顔ランダムフォレストモデル (FaceDetector.bin, FaceRecognition.bin, ExpressionRandomForest.model, 他8個)、3つのアクティブバージョン (X:\ht\versions\) |
| 広告 | AdsLauncher (システムアプリ)、Windows.Xbox.System.Internal.AdsContract (WinRT) |
| レガシー(無効) | Zurich (TVチューナー、XVIO連携)、PetraXC / KinectSensorControl (WDF 1.11、Kinectデバイスが到着するまで無効。\\.\KinectSensorControl経由でKinectMediaSource.dllに供給) |
| コントラクト | バージョン | 備考 |
|---|
Windows.Kinect.KinectContract | v1 | Kinectはタイトルの後方互換性を目的としてサポートされている可能性が高い |
Windows.Xbox.TestAutomationContract | テスト自動化サーフェスは小売版ハードウェアに搭載されている | |
Windows.Xbox.System.Internal.AdsContract | 広告システムは内部WinRTコントラクトである | |
Windows.Xbox.System.Internal.CopyOnLan.CopyOnLanContract | LANゲームコピー、ローカルネットワークタイトル転送? | |
Windows.System.Internal.XboxLive.Auth.AuthContract | v2 | 内部Xbox Live認証サーフェス(公開XBL APIとは別) |
サイドロードされた開発アプリの設定のみ存在。Xboxシステムアプリは標準のUWP LocalPackagesストレージパスを使用しない |
| チャネル | API | 目的 |
|---|
| システム全体へのブロードキャスト | RtlPublishWnfStateData | ボディ/フェイス/オーディオの状態をすべてのWNFサブスクライバーに公開 |
| 顔サインイン | LogonUserExExW | 顔ベースの自動ユーザーサインインをトリガー |
| アプリごとの名前付きパイプ | 名前付きパイプサーバー + GetNamedPipeClientProcessId | プロセスごとの出力をゲート制御し、データ配信前に呼び出し元のIDを検証する |
| 呼び出し元ごとのRPC | RPCサーバー + RpcServerInqCallAttributesW | 推論結果への呼び出し元ごとの認証済みアクセス |
| 永続的なアイデンティティ | 状態リポジトリ (SRDictionaryToPropertySet) | 認識されたアイデンティティをセッション間で永続化する |
| ケイパビリティゲート | RtlCapabilityCheck | 推論出力へのすべてのアクセスはNTケイパビリティチェックでゲート制御される |
| コンシューマー | 備考 |
|---|
| Xbox Shell | 表情を考慮したUI適応 |
Guide.exe | 自動サインイントリガー |
XboxUI.exe | 注意/視線を考慮したUI |
| ゲームタイトル | NuiVision WinRTコントラクト(Windows.Kinect.KinectContract v1、小売版)経由 |
| xCloud | ストリーミングクライアントがNUI状態を受信する |