------------------------------------
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がMMIO0x31C020を読み取る。 -
前回値との差分を計算し、
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回