------------------------------------
PC関連

今日のChatGPTでGV-BCTV9の64bitドライバ作成の指示。

現在の進行状況

 

現在の進行状況(2026年10月12日)

プロジェクト全体

解析・設計段階

元の32bitドライバの主要経路が見えてきた段階。64bit版での安全な映像キャプチャ動作はまだ未実証。

項目

現状

64bitドライバのビルド・署名

過去に成功

WindowsでのGV-BCTV9認識

過去に成功

PCI/MMIOレジスタ読み取り

成功

DMA制御レジスタの特定

進展あり

RISC/DMA構造の解析

進行中

元ドライバのPnP処理

主要経路を解析

ISR(割り込み処理)

主要経路を特定

A系・B系DPC

初期化・投入・実行関数を特定

DMA停止安全性(E2)

未証明

PCI書き込み排出(E3)

未証明

64bit版での映像取得

未達成

今日の大きな成果

特に重要なのは、元ドライバの割り込みからDMA転送後の処理まで、次の経路がつながったこと。

ISR 0x1A43C

割り込み要因を判定

A系 DPC

0x139EE

0x265F2

B系 DPC

0x13A14

0x27C26

DMA転送進行の管理

A系はMMIO 0x31C020 のカウンタ差分を利用

今日判明したA系の仕組みは、かなり具体的だよ。

  • 0x265A8 がMMIO 0x31C020 を読み取る。

  • 前回値との差分を計算し、0x10000 の折り返しを補正する。

  • リング長を使って処理件数を求める。

  • 0x265F2 が状態に応じて 0x25B56、0x25CEE、0x25C3C を呼び分ける。

  • リングインデックスを更新する。

つまり、元ドライバが転送の進行をどう把握し、完了したデータをどう処理するかが見えてきた。

まだ残っている重要課題

最大の課題は、依然として E2・E3の安全性証明。

DPC管理フラグはDPCの処理開始時にクリアされるため、フラグがゼロでも処理完了とは限らないことが判明した。

また、DMAカウンタが進んだことと、DMAエンジンが完全停止したことも別問題。

ここを曖昧にしてハードウェアを動かすのは避けたい。

次回の再開地点

次回は、今日の最後に予定していた B系DPC 0x27C26 の解析から再開すればいい。

dumpbin /disasm /range:0x27C26,0x27D10 "E:\元ドライバ\bt6vid.sys"

これまで解析したISR、DPC初期化、A系 0x265A8 を最初から調べ直す必要はない。

現在の開発版 GVBCTV9_StageV3_10_PNP_STATE_PREVIEW_SOURCE_ONLY は、引き続き凍結したままにする。

全体としては、デバイス認識を成功させた段階から、元ドライバのDMA・割り込み・転送管理を具体的に再現するための解析段階へ進んでいる。

完成率を何%と数字で表すのはまだ難しいけれど、重要な未知部分は確実に減っているよ。

今日はここまでで十分。次回も重複解析を避けながら、この続きから進めよう!


------------------------------------
朝の体重
58.2kg

朝
牛乳+プロテイン 262kcal
スルピリド 50mg 1錠

昼
牛乳+プロテイン 262kcal
堅ぶつ 黒胡椒 713kcal

夜
牛乳+プロテイン 262kcal
チキンラーメン 387kcal
サラダ
フルボキサミンマレイン酸塩錠 25mg サワイ1錠
スルピリド 50mg 1錠
生チョコパイ 259kcal


ツイストクランチ 30回×3セットを時間空けて計3回
サイドプランク 左右 各30秒×2セットを時間空けて計3回
サイドプランクロール 左右 各20回×1セットを時間空けて計3回
腕立て伏せ 30回
懸垂 5回
スクワット 20回を時間空けて計3回

------------------------------------
PC関連

今日のChatGPTでGV-BCTV9の64bitドライバ作成の指示。

現在の進行状況

 

現在の進行状況を、2026年10月11日時点で整理するね。

GV-BCTV9 64bitドライバ開発 進捗報告

現在の開発段階

Stage V3.9

NO_DMA診断専用構成の実装途中

安全性検証中

オフラインモデルテスト

59/59

全件PASS

実機での動作保証

未達成

DMA停止・PnP安全性が未証明

1. これまでに達成したこと

項目

状況

GV-BCTV9のPCIデバイス認識

過去に成功

64bitドライバのビルド

過去に成功

テスト署名とインストール

過去に成功

MMIOレジスタ読み取り

過去に成功

元32bitドライバの逆アセンブル

多数の関数・構造を解析

RISCプログラム構築コード

実装あり

DMAバッファ確保コード

実装あり

キャプチャ開始・停止コード

実装あり

DMA停止の安全性証明

未完了

安全な映像キャプチャ

未達成

重要なのは、キャプチャ用コードが存在していても、現在は安全上の理由から開始機能を使えないようにしていること。

2. 今日の成果

今日は特に、V3.8からV3.9への移行が進んだ。

  • V3.9の作業用フォルダを作成

  • DMA停止・解放に関する安全設計メモを作成

  • DMA開始関数 StartCapture() に直接の呼び出しがないことを確認

  • DMA確保処理を条件付きコンパイルに変更

  • GVBCTV9_V39_NO_DMA を有効化

  • DMA関連コードのバックアップを保存

  • ISRのMMIOアクセスと割り込み処理を確認

特に、DMAバッファを確保しない診断専用構成に向けた最初のソース修正が完了したのは大きいね。

3. 現在残っている問題

DMA開始経路の制限

StartCapture() の直接呼び出しがなく、キャプチャ開始IOCTLも拒否されていることを確認済み。

DMA確保の無効化

NO_DMA構成ではDMA Enabler・共通バッファ確保・初期RISC構築をコンパイル対象から外す変更が完了。

割り込み処理の整理

ISRは解析済み。GvEvtInterruptEnable() と GvEvtInterruptDisable() の確認が次の作業。

PnP・DMA解放の安全性

DMA停止完了、バス転送の静止、ISR・IOCTLの終了を保証する仕組みが未完成。

映像キャプチャの実用化

安全性の問題を解決した後に、DMA・RISC・映像取得機能を段階的に検証する必要がある。

4. 次回の再開地点

次回は、ここから再開すれば大丈夫。

次回の作業

Stage V3.9:割り込み有効化・無効化処理の確認

対象ファイル:

E:\圧縮集まる\GVBCTV9_StageV3_9_TEARDOWN_DESIGN_SOURCE_ONLY\driver\src\GVBCTV9.c

確認範囲:550〜590行

既に調査したISR本体(827〜853行)やDMA確保部分(763〜784行)は再解析不要。

次回もコマンドは1回に1本ずつ、Visual Studio Developer Command Promptから実行できる形式で進めよう。

5. 完成まで、あとどのくらい?

ここは少し慎重に見ているよ。

ハードウェア認識と静的解析は進んでいるけれど、安全に映像を取り込める段階にはまだ到達していない。

特にDMA停止とPnP処理は、間違えるとWindowsがフリーズする可能性がある重要部分。進捗を単純な「完成率○%」で表すのは難しい。

今後の大きな目標は、

診断専用構成の整合性確認 → DMA停止・解放の安全設計 → キャプチャ機能の段階的な復活 → 映像取得の検証

という流れになる。

今日はV3.9のソース変更まで進んだので、ここで止めるのはちょうどいい区切りだと思う。

次回は「GV-BCTV9 V3.9の続き」で再開しよう。これまでの解析結果を活用して、重複作業をできるだけ避けながら進めていこう!


------------------------------------
朝の体重
58.1kg

朝
牛乳+プロテイン 262kcal
スルピリド 50mg 1錠

マウントレーニア モカチーノ 144kcal

昼
牛乳+プロテイン 262kcal
魚肉ソーセージ 108kcal

夜
牛乳+プロテイン 262kcal
ご飯 300g 468kcal
おでん 124kcal
餅巾着 265kcal
サラダ
フルボキサミンマレイン酸塩錠 25mg サワイ1錠
スルピリド 50mg 1錠

ツイストクランチ 30回×3セットを時間空けて計3回
サイドプランク 左右 各30秒×2セットを時間空けて計3回
サイドプランクロール 左右 各20回×1セットを時間空けて計3回
腕立て伏せ 30回
懸垂 5回
スクワット 20回を時間空けて計3回

------------------------------------
PC関連

今日のChatGPTでGV-BCTV9の64bitドライバ作成の指示。

現在の進行状況

 

GV-BCTV9 逆アセンブル解析・進行状況

今回までに判明したこと

1. 元ドライバの構造を把握

  • bt6vid.sys は32bit x86のWindowsカーネルドライバ。

  • dumpbin /headers でセクション構成とアドレス範囲を確認済み。

  • bt6vid.asm を使い、関数・構造体オフセット・仮想関数テーブルを継続調査中。

2. 0x11090 と 0x29A4C の関係を確認

  • 0x11090 はオブジェクトの先頭に 0x29A4C を設定する初期化関数。

  • 0x29A4C から始まるテーブルには、0x11090、0x110AE、0x110B2、0x110B8 などのアドレスが並ぶ。

  • これらはオブジェクトのメソッド群を構成している可能性が高い。

3. 0x210DA の呼び出し関係を調査

  • 0x110E0 と 0x1EB64 から呼び出されることを確認。

  • 0x110E0 側では、オブジェクトの状態に応じて呼び出し、戻り値を判定している。

  • 0x210DA の内部では、0x20476、0x20B8C、0x20D8C などの処理が使われることを確認済み。

4. 0x421B8 の代入箇所を特定

次の3か所で同じグローバル変数に値を保存している。

代入箇所

直前の処理

0x115B4

仮想関数 +0x110 の戻り値

0x16B43

仮想関数 +0x110 の戻り値

0x23FB4

関数 0x22C56 の戻り値

5. 0x21DF4 の機能を解明

  • 6個のスタック引数を受け取る。

  • 入力値が指定範囲内にあるか検証する。

  • 範囲内なら線形補間した値を出力先へ格納し、EAX=0 を返す。

  • 範囲外などの場合は EAX=1 を返す。

  • 0x22C56 はこの処理を呼び出し、その戻り値を返す。

したがって、0x22C56 経由で 0x421B8 に保存される値は、補間結果ではなく、成功・失敗の戻り値だと判断できる。

現在の解析テーマ

0x421B8 に保存される値の意味と、仮想関数 +0x110 の実体を特定すること。

ただし、0x421B8 は複数の処理から上書きされるため、グローバル変数全体を単一の成功フラグと断定するのはまだ早い。

また、GV-BCTV9の映像キャプチャ機能そのものを解析する大きな目標は継続中。今回の調査だけで、キャプチャ開始やDMA転送の仕組みが解明できたわけではないよ。

次回の再開地点

次回は、既出の 0x115AE 周辺を繰り返し調べず、0x16B3D で呼び出される仮想関数の実体から再開しよう。

Visual Studio 2026 Developer Command Prompt で、次のコマンドを実行すればいい。

powershell -NoProfile -Command "Select-String -Path 'E:\元ドライバ\bt6vid.asm' -SimpleMatch '00016B3D:' -Context 35,20"

この周辺から呼び出し先のオブジェクトや初期化経路を追い、+0x110 が何を返すのかを調べる。

再開用メモ: bt6vid.sys の解析を継続中。直近では 0x29A4C のメソッドテーブル、0x210DA の状態判定処理、0x421B8 の代入元を調査。次は 0x16B3D の仮想関数呼び出しを追う。既出の逆アセンブルを重複解析しない。

 

現在の詳細な進行状況

 

今回の逆アセンブル解析だけでなく、これまでのデバイス認識、テスト署名、読み取り専用プローブ、元ドライバ解析も含めた全体像で整理するね。

1. プロジェクト全体の進捗

2026年10月10日時点・会話履歴に基づく概算

約40%

プロジェクト全体の推定進捗

調査・基盤構築段階

キャプチャ機能の実動作は未確認

※ 正式な工数計測値ではなく、達成済みの作業と残課題からの目安。完成までの残り工数を意味するものではないよ。

2. 分野別の進捗グラフ

作業分野別の進捗率(推定)

達成した作業と未解決課題からの概算。完成判定ではない。

0%25%50%75%100%開発環境・ビルド署名・ドライバ導入デバイス認識読み取り専用調査元ドライバ解析x64ドライバ実装映像キャプチャ実動作総合テスト・完成

各分野の割合は、これまでの作業内容から付けた暫定評価。分野ごとの難易度や作業量は異なるため、単純平均を完成率とはみなしていないよ。

3. これまでに達成したこと

開発環境の構築

達成

Visual Studio、Windows SDK、WDKを用いたx64ドライバのビルド環境を整備。署名やINF関連のエラーも順番に解消してきた。

署名・インストール・デバイス認識

動作確認済みの実績あり

テスト署名、INFのインストール、デバイスマネージャーでの認識を確認。過去に発生したCode 52にも対処した。

読み取り専用プローブ

実行実績あり

GVBCTV9Probe.exe でデバイスを開き、MMIOレジスタを読み取るところまで到達。解像度やキャプチャ関連の状態値も取得した。実際の映像取得が成功したわけではない。

元ドライバ bt6vid.sys の逆アセンブル

継続中

オブジェクト初期化、メソッドテーブル、構造体オフセット、呼び出し関係などを追跡中。現在は 0x421B8 の代入元と仮想関数の役割を調査している。

4. まだ残っている大きな課題

第1段階:元ドライバの機能解析

初期化処理、デバイス状態、割り込み、DMA、映像フォーマット設定の関係を明らかにする。

現在の主な作業

第2段階:x64ドライバへの実装

解析結果をもとに、64bit環境に適したデバイス制御・割り込み・DMA・ストリーミング処理を実装する。

第3段階:実際の映像キャプチャ

映像信号の入力、フレーム取得、連続キャプチャ、安定性を検証する。ここが大きな最終目標。

第4段階:安定動作・完成

エラー処理、停止・再開、複数回のキャプチャ試験、最終的なインストール手順を確認する。

5. 今日の作業地点と次回の目標

次回はここから再開

現在の解析地点:0x16B3D

仮想関数テーブルの +0x110 にあるメソッドの実体と戻り値を追跡する。

直近の目標:0x421B8 の役割を確定

代入元ごとに処理を比較し、単なる成功・失敗コードなのか、それ以外の状態を表しているのかを切り分ける。

その後:キャプチャ処理との接続

解析済みの初期化処理や構造体オフセットと結び付け、映像キャプチャを動かすために必要な処理を絞り込む。

現状の評価: ドライバをビルドしてデバイスを認識させ、レジスタを安全に読み取る基盤までは到達している。今は、元ドライバの内部構造を理解して、実際の映像キャプチャ実装につなげるための調査段階だね。

これまで積み上げてきた解析はちゃんと土台になっている。次回も、既出の逆アセンブルを重複して調べず、この地点から続けよう。


------------------------------------
朝の体重
57.4kg

朝
マウントレーニア プロテイン カフェラッテ 144kcal
スルピリド 50mg 1錠

昼
牛乳+プロテイン 262kcal
じゃがりこ サラダ味 285kcal
亀田のうす焼 サラダ 115kcal

夜
牛乳+プロテイン 262kcal
卵かけごはん 500kcal
チョリソー 480kcal
チーカマ 35kcal
ベビーチーズ 1個 45kcal
サラダ
パイの実 138kcal
フルボキサミンマレイン酸塩錠 25mg サワイ1錠
スルピリド 50mg 1錠

ツイストクランチ 30回×3セットを時間空けて計3回
サイドプランク 左右 各30秒×2セットを時間空けて計3回
サイドプランクロール 左右 各20回×1セットを時間空けて計3回
腕立て伏せ 30回
懸垂 5回
スクワット 20回を時間空けて計3回

------------------------------------
PC関連

今日のChatGPTでGV-BCTV9の64bitドライバ作成の指示。

現在の進行状況

 

ここ数週間、GV-BCTV9の64ビットドライバ開発をずっと進めてきましたが、かなり重要なところまで到達しています。

現在の進行状況を、最終目標である「64ビットWindowsでGV-BCTV9を使って映像をキャプチャする」ことを基準に整理します。

GV-BCTV9 64ビットドライバ開発・進捗報告

現在の開発段階

解析進行中

DMA・RISC制御の解明段階

2026年10月9日時点

実機動作までの工程別状況

開発環境・ビルド

100%

署名・デバイス認識

100%

MMIOレジスタ読み取り

90%

元ドライバの構造解析

75%

RISC DMA解析

65%

DMA実装・映像取得

10%

割合は作業状況を分かりやすく示した概算であり、動作試験に基づく厳密な達成率ではありません。

1. すでに達成したこと

64ビットドライバのビルド

Visual Studio 2026、Windows SDK、WDKを使った開発環境を構築しました。

デバイスマネージャーで認識

テスト署名したドライバをインストールし、GV-BCTV9が正常に認識されるところまで確認できました。

ハードウェアのレジスタ読み取り

GVBCTV9Probe.exe による読み取り専用のMMIOアクセスが成功しています。

元の32ビットドライバを解析

bt6vid.sys の逆アセンブルから、内部関数、構造体、レジスタ操作、DMA関連処理を多数特定しました。

これは大きいです。最初はドライバを認識させること自体が難しかったのに、今では元ドライバのDMA制御を命令単位で調べています。

2. 今日までに判明したDMAの仕組み

項目

現在の解析結果

DMA方式

CX23880のRISCプログラムを使用

DMA管理エントリ

12個、各32バイト

RISCメモリ

+0xF0 のポインタで管理

RISC JUMP

0x70000000 系の命令

DMA進行監視

レジスタオフセット 0x31C020

レジスタ読み取り

READ_REGISTER_ULONG(32ビット)

DMA管理数

+0x108 で管理

RISCリンク更新

0x258AC などの関数

エントリ検索

0x25768

特に重要なのは、DMAの進行監視とRISCプログラムの構築処理の両方を発見できたことです。

12個のDMAエントリの構成

0

その他

1

系列A

2

その他

3

系列B

4

その他

5

系列A

6

その他

7

系列B

8

その他

9

系列A

10

その他

11

系列B

系列Aは1・5・9、系列Bは3・7・11。残りのエントリにも別の管理上の役割があります。

今日の解析で、ストリームの状態によって系列A・Bそれぞれのエントリを1個または3個有効化する処理が確認できました。

3. まだ完成していない部分

ここは重要です。

現時点では、64ビット版で実際に映像をキャプチャできる状態には到達していません。

主に残っているのは次の作業です。

  1. DMAの初期化条件を解明する — RISCメモリの確保、物理アドレス、バッファ配置を確認。

  2. RISCプログラムを実装する — 元ドライバのリンク構造を64ビット環境で安全に再現。

  3. DMA開始・停止と割り込みを実装する — ハードウェアが映像データを書き込める状態にする。

  4. 映像データを取り出す — フレーム取得を確認し、映像キャプチャアプリから利用できるようにする。

そのほか、映像入力切り替え、同期、音声なども最終的には確認が必要です。

4. 次回の再開地点

次回は、今日最後に見つけた 0x1A4E2 から再開するのがよいと思います。

この関数は、DMAエントリを1個使うか3個使うかの判定に関係しています。

次に実行するコマンドは、こちらです。

dumpbin /disasm /range:0x1A4E2,0x1A590 "E:\元ドライバ\bt6vid.sys"

ここを解読すれば、RISC DMA構築条件の理解がさらに進むはずです。

5. 完成まであとどれくらい?

私の現時点での評価は、次のとおりです。

元ドライバの仕組みを理解する段階

大きく前進

64ビットでDMAを動かす段階

これから

実際に映像を表示する段階

未到達

全体の完成率を正確な数字で表すのは難しいですが、最も不透明だった元ドライバの内部構造について、具体的な設計情報が集まり始めた段階です。

一方で、DMAの実機動作や映像取得はこれからなので、完成までの工数はまだ予測できません。

私としては、今後は解析だけを際限なく続けるのではなく、必要な情報がそろったところから小さな機能を実装し、実機で安全に検証していく進め方がよいと思います。

今日はここまでにしましょう。

最初の「GV-BCTV9を64ビットWindowsで認識させたい」というところから、今では元ドライバのRISC DMA制御まで追跡できています。


------------------------------------
朝の体重
58.2kg

朝
牛乳+プロテイン 262kcal
スルピリド 50mg 1錠

昼
マウントレーニア プロテイン カフェラッテ 144kcal
魚肉ソーセージ 108kcal
蒸し鶏サラダ+マヨネーズ 60kcal

夜
牛乳+プロテイン 262kcal
ご飯 300g 468kcal
納豆 100kcal
サラダ
フルボキサミンマレイン酸塩錠 25mg サワイ1錠
スルピリド 50mg 1錠

ツイストクランチ 30回×3セットを時間空けて計3回
サイドプランク 左右 各30秒×2セットを時間空けて計3回
サイドプランクロール 左右 各20回×1セットを時間空けて計3回
腕立て伏せ 30回
懸垂 5回
スクワット 20回を時間空けて計3回

------------------------------------
PC関連

今日のChatGPTでGV-BCTV9の64bitドライバ作成の指示。

現在の進行状況
 

GV-BCTV9 64bitドライバ開発・進捗報告

現在の開発段階

逆解析・実装準備

ハードウェア認識成功 → 映像キャプチャ実装に向けた解析中

2026年10月8日時点

64bitドライバのビルド

成功

テスト署名・インストール

成功実績あり

デバイスマネージャーで認識

成功実績あり

MMIOレジスタ読み出し

成功

元ドライバの逆解析

進行中

映像キャプチャ・録画

未実現

※ 現在の実機状態を今日再確認したわけではなく、これまでの成功実績に基づく整理です。

これまでの主な成果

第1段階:64bitドライバの基礎構築

Windows向けのドライバプロジェクトを作成し、WDK、Visual Studio、テスト署名の問題を解決しました。GV-BCTV9がデバイスマネージャーに正常表示されるところまで成功しています。

第2段階:実機との通信

読み取り専用の調査ツールでデバイスを開き、CX23880のMMIOレジスタを取得できました。ハードウェアとの基本的な通信経路が動作したのは大きな成果です。

第3段階:元の32bitドライバの解析

bt6vid.sys の逆アセンブルから、以下の処理を追跡しました。

  • フレーム周期を管理するビットマスク

  • キャプチャバッファの選択と切り替え

  • RISCプログラムのジャンプ先更新

  • キャプチャ要求の完了処理

  • タイムスタンプの設定

  • レジスタの読み書きとビットフィールド操作

第4段階:今日の進展

特に重要だったのが、0x310110 に対応する設定オブジェクトの追跡です。

0x12DC2 では +0x320 のオブジェクトへ設定値を渡す処理、0x12EAB~0x12F0B では5つのオブジェクトへ戻り値を順番に渡す処理を確認しました。

これによって、元ドライバが複数の設定オブジェクトを連携させていることが分かりました。

ただし、これがDMA開始処理そのものなのかは、まだ確定していません。

完成までに残っていること

項目

状況

DMA開始・停止の正確な手順

未解明

RISCプログラムの実機向け構築

未実装・未検証

DMAバッファの割り当てと接続

未完成

割り込み処理とフレーム受信

未完成

映像入力・同期設定

未完成

Windowsのキャプチャアプリとの連携

未完成

実際の映像表示・録画

未達成

ここで重要なのは、元ドライバの処理を理解することと、64bitドライバでその機能が動作することは別の段階だという点です。

解析は進んでいますが、映像を表示できるまでの実装と実機検証はまだ相当残っています。

そのため、完成率を安易に「80%」などとは言えません。

次回の再開地点

解析対象:bt6vid.sys

次に調べるアドレス

0x12C80 ~ 0x12D70

複数の設定オブジェクトを操作する関数の前半を解析し、処理の実行条件を確認する。

次回のコマンド

Developer Command Prompt for VS 2026

dumpbin /disasm /range:0x12C80,0x12D70 "E:\元ドライバ\bt6vid.sys"

 

私の現在の評価

GV-BCTV9を64bit Windowsに認識させる段階は突破できています。

今は、元ドライバのキャプチャ制御を理解し、それを64bit環境で安全に再現するための調査段階です。

ここからは同じ解析を繰り返さないように、判明した関数と未解明の関数を区別して進めたいですね。

何より、2004年の32bitドライバをここまで追跡してきたのは、なかなかの作業量ですw

今日はゆっくり休みましょう。次回は 0x12C80 から再開です!

 

なんか解析終わったみたいな事言ってたんだけどまたやってる様な気がするのだが・・・w

ほいで質問した。


>>俺
なんか前にもやった事があるような事今やってるんだけど2重にやってるって事ない?解析終わったみたいな事見たんだがw

>>AI
22s考えました

あっ、それはかなり鋭い指摘ですw

結論から言うと、解析を二重にやっている部分があります。 過去の作業履歴を確認したところ、私が以前の成果を十分に引き継がず、すでに調べた内容をもう一度追いかけていた可能性が高いです。

これは私の進行管理がよくありませんでした。ごめんなさい。

過去の解析を確認した結果
実は、9月の段階ですでに相当進んでいました。

項目

過去の進捗

RISCプログラムの構造

解析済み

DMAバッファとSG構造

オフライン検証済み

RISCのJUMP・IRQ1・CNT_INC

解析済み

キャプチャキューの接続

解析実績あり

フレーム完了処理

解析実績あり

映像サイズ・タイミング関連

詳細な検証済み

64bitドライバのビルド・署名

成功実績あり

実機でのDMA開始

未達成

特に重要なのは、Stage 9.99.28までオフライン監査がPASSしていたという過去の記録です。

さらに、Stage 9.37~9.44では映像設定やタイミング、状態の更新処理まで調査しています。

つまり、最近調べていた内容と重複する領域がかなりあります。

「解析が終わった」という話について
これも理由が分かってきました。

以前の記録では、RISCやキュー処理などの特定の解析・オフライン検証が完了したことがありました。

ただし、ドライバ全体が完成したわけではありません。

当時の記録では、

DMA_READY:未許可

START_ALLOWED:未許可

実機でのキャプチャ開始:未実施

基板固有の映像入力経路:未確定

という状態でした。

したがって、解析の一部が完了していたのは事実ですが、映像を取り込むための実機検証は残っていたというのが正確です。

では、最近の解析は無駄だった?
全部が無駄だったわけではありません。

最近は bt6vid.sys の 0x310110 周辺や、0x12DC2~0x12F0B の設定オブジェクトを追跡しました。

ただし、これらのアドレスを以前にも解析したかどうかは、まだ完全には照合できていません。

問題は、過去に分かったことと今回新しく分かったことを比較せず、逆アセンブルを続けてしまったことです。

ここから方針を変更したいです
もう、闇雲に dumpbin を繰り返すのはやめましょうw

次回は、まず過去のStage 9系と最近の解析結果を整理して、

すでに解析済みの項目

解析したが実機未検証の項目

本当に未解明の項目

を区別します。

そのうえで、映像キャプチャ実現を妨げている未解決部分だけに集中します。

現時点では、特に基板固有の入力経路、キャプチャ時のデコーダ・スケーラ設定、DMA開始の安全条件が重要です。

今までの成果を捨てて最初からやり直す必要はありません。

むしろ、すでに積み上がっている成果を使って、実装と検証の段階へ進むべきところまで来ている可能性があります。

今日はここで止めて正解だったかもしれませんw

次回は逆アセンブルの続きを始める前に、「過去の解析で何が完了しているか」の棚卸しから始めましょう。



まじか~・・・

チャットの引継ぎなんかの手順間違ってたのかな~・・・

初めの方ならあるかもな。

まぁしゃあないか・・・

そもそもおかしいと思ったのがその日に終了を伝える時に毎回現在の進行状況を聞いてブログに貼ってる。

その都度進行度の%がなんかまばらだな~、と思ってたのよね。

まぁなんかおかしいなと思ったら遠慮せず質問するのが良さげだな。

 

とはいうものの専門的な知識が0だから間違いなのか正解なのか分からんしな・・・

 

やっぱ無謀だったのかな~・・・

 

------------------------------------

朝の体重
58.2kg

朝
牛乳+プロテイン 262kcal
スルピリド 50mg 1錠

昼
マウントレーニア プロテイン カフェラッテ 144kcal
カップ麺 ユッケジャンラーメン 370kcal
魚肉ソーセージ 108kcal
蒸し鶏サラダ+マヨネーズ 60kcal
貰ったお菓子 180kcal

夜
牛乳+プロテイン 262kcal
ご飯 250g 390kcal
彩り煮物炊き合わせ 235kcal
卵スープ 50kcal
サラダ
フルボキサミンマレイン酸塩錠 25mg サワイ1錠
スルピリド 50mg 1錠

ツイストクランチ 30回×3セットを時間空けて計3回
サイドプランク 左右 各30秒×2セットを時間空けて計3回
サイドプランクロール 左右 各20回×1セットを時間空けて計3回
腕立て伏せ 30回
懸垂 5回
スクワット 20回を時間空けて計3回