------------------------------------
PC関連
今日もChatGPTでGV-BCTV9の64bitドライバ作成の指示。
現在の進行状況
GV-BCTV9 64bitドライバ解析 現在位置(2026/10/03終了時点)
1. 目標
最終目標:
- 旧32bit bt6vid.sys の動作を解析
- CX23880系 GV-BCTV9 用に64bit Windowsドライバを作成
- 最終的には実キャプチャ可能な状態へ持っていく
現在は:
「元ドライバがCX23880へ何を書いているか解析中」
という段階。
2. ここまで達成済み
✅ 64bitドライバ骨格
完了:
- Visual Studio環境構築
- WDK導入
- x64 Kernel Driverプロジェクト作成
- INF作成
- SYSビルド
- CAT作成
- テスト署名
✅ Windows認識
成功済み:
- GV-BCTV9 PCIデバイス認識
- デバイスマネージャ表示成功
- 署名問題(Code52)解決
✅ 独自Probeツール
作成済み:
GVBCTV9Probe.exe
現在できること:
- デバイスオープン
- MMIO読み取り
- CX23880レジスタ確認
確認できたもの:
- MO_PCI_INTSTAT
- MO_DEVICE_STATUS
- MO_INPUT_FORMAT
- MO_CAPTURE_CTRL
- DMA関連レジスタ
つまり、
ハードウェアへの入口は確保済み
3. 元ドライバ解析状況
解析対象:
E:\元ドライバ\bt6vid.sys
dumpbinで逆アセンブル解析中。
発見①
内部関数
00020296
が大量に呼ばれている。
これは恐らく:
レジスタ書き込みラッパー
と判断。
イメージ:
WriteRegister(device, offset, value)
みたいな関数。
発見②
310xxx領域
主に:
310100
310104
310108
31010C
310120
...
初期化テーブル・構造体設定っぽい。
特に
00023217~
000236xx
では大量の構造体初期化。
ここは:
- Video Composite設定
- DMA設定
- フィルタ構造体
などの可能性。
発見③(今日の大きな成果)
320xxx領域発見。
検索結果:
320108
32058C
320600
320608
320408
など。
4. 現在一番怪しい場所
★320108
頻出。
例:
mov ebx,320108h
多数。
予想:
- キャプチャ状態
- DMA enable
- RUN/STOPフラグ
候補。
★32058C
さらに重要。
頻出。
例:
mov edi,32058Ch
予想:
- CX23880制御状態
- 割り込み状態
- SYNC制御フラグ
候補。
★320600 / 320608 / 320408
初期化関数でセット。
00013E79
push 320600h
00013E86
push 320608h
00013E93
push 320408h
予想:
- 初期化完了処理
- DMA準備
- 割り込み設定
5. 今日見つかった重要ポイント
この部分:
000231B2~
ここ。
内容:
call 000202DE
shr esi,0Fh
and esi,1
call 000202DE
shr eax,10h
cmp eax,8801h
cmp eax,8811h
意味:
PCI/Vendor情報を読んで、
8801
8811
を判定しています。
つまりここは:
カード種類判定ルーチン
の可能性が高い。
6. 現時点でまだ未解決
残っている最大課題:
❓ SYNC問題の本当の犯人
まだ確定していない。
候補:
- CX23880 GPIO設定
- ADC入力設定
- VBI/SYNC設定
- DMA開始タイミング
- クロック設定
❓ 64bitドライバ側への移植
まだ途中。
現在は:
旧ドライバ解析
↓
レジスタ操作抽出
↓
64bit版へ再実装
の「レジスタ操作抽出」段階。
次回やる予定
次回の第一候補:
dumpbin /disasm /range:0x1C500,0x1C900 "E:\元ドライバ\bt6vid.sys"
を見る。
理由:
ここに
- 320108
- 32058C
- 3205F0
- 3205B4
が集中している。
ここが恐らく、
「キャプチャ開始・停止・DMA制御の核心部」
に近い。
個人的な進捗感
最初の頃は、
「64bitドライバ作れるのか?」
という状態でしたが、今はかなり変わっています。
現在:
- デバイス認識 ✅
- 署名問題解決 ✅
- MMIOアクセス成功 ✅
- 元ドライバのレジスタ書込み関数特定 ✅
- 初期化テーブル発見 ✅
- 制御レジスタ群候補発見 ✅
なので、今は「暗闇で探す」段階は抜けていて、
元ドライバの動作表を作って64bit版へ移植する段階に入った
という感じです。
今日はかなり濃いところまで掘れました。
次回は1C500付近から再開すれば、流れが切れないと思います。👍
------------------------------------
朝の体重
57.8kg
朝
牛乳+プロテイン 262kcal
スルピリド 50mg 1錠
昼
牛乳+プロテイン 262kcal
魚肉ソーセージ 108kcal
夜
牛乳+プロテイン 262kcal
卵かけごはん 420kcal
ハムカツ 266kcal
コロッケ 238kcal
サラダ
細切りポテトリング なげわ うましお味 314kcal
フルボキサミンマレイン酸塩錠 25mg サワイ1錠
スルピリド 50mg 1錠
ツイストクランチ 30回×3セットを時間空けて計3回
サイドプランク 左右 各30秒×2セットを時間空けて計3回
サイドプランクロール 左右 各20回×1セットを時間空けて計3回
腕立て伏せ 30回
懸垂 5回
スクワット 20回を時間空けて計3回