楽しいハック講座(3) マルチメディア タイマー その 2

こんにちははらだんです。今回は以前予告した timeSetEvent API の動作をハックしていきます。(注:クラックではありません)   今回紹介する内容は、弊社から無償で公開されているデバッグ専用のツール Debugging Tools for Windows に同梱されているデバッガ (windbg) と公開デバッグ シンボルを使えば誰でも確認することができます。   調査する内容の概要は以下になります。詳細については以前の記事「timeSetEvent の制限事項と不具合について」を読んでいただけたらと思います。   お題: Windows XP で timeSetEven() を uDelay に 429,497 ms 以上かつ TIME_PERIODIC を指定して呼ぶと期待する時間が経過する遥か前にイベントが発火する。Windows Vista/Windows 7 ではこの現象は起きていない。この現象についてデバッグを行い動作を確認する。   詳細は以前の記事に譲るとして、このお題について以下の 4 点を確認します。 A. uDelay の上限が 1000 秒であることを実装から確認する B. Windows XP では 429496 ミリ秒を超えるとオーバーフローすることを確認する C. TIME_ONESHOT の場合なぜ B. の現象は再現しないかを確認する D….

0