3

OS XでUSBデバイス用のカーネルドライバーを開発しています。ハンドラーを追加した後、メソッドが呼び出されsetPowerStateた直後にウェイクイベントが呼び出されることに気付きました。startこれは、OS X 10.6でドライバをロードしたとき、およびUSBデバイスを接続したときに発生します。

kernel.logは、各メソッド呼び出しで作成しているiologエントリを示しています。

...(attach device)
MyDriver: Initializing
MyDriver: Probing
MyDriver: Starting
MyDriver: Waking
...(detach device)
MyDriver: Stopping
MyDriver: Freeing

毎回起動後にウェイクアップが発生することを期待できますか?

setPowerStateもしそうなら、私の初期化コードのほとんどをハンドラーに入れるのは合理的ですか?それは開始後に呼び出されることを知っていますか?

これはOSX10.4と10.5にも当てはまりますか?

4

1 に答える 1

1

はい、できます。ドライバーが電源プレーンに正しく接続され、電源管理が正しく初期化されている場合に限ります(「基本的な電源管理の実装」の見出しの下にある以下のリンクを参照してください。

それは合理的であるだけでなく、期待されています。setPowerStateにない、startまたは他の場所にある初期化コードは、一度だけロードされ、のスリープおよびウェイクイベントの電源状態処理コードを持つものだけであることに注意してくださいstart

詳細については、こちらをご覧ください

Mac OS XバージョンのsetPowerStateの唯一の違いは、Mac OS X 10.5以降では、setPowerStateが独自のスレッドで呼び出されるのに対し、10.4は既存のスレッドの一部として呼び出されることです。

于 2012-03-02T22:46:25.340 に答える