またまた適当なw

日本語OS+日本語キーボードだとCapsLockキーは無いんだよ。
(キー刻印の下段(の左)にあるのがキー名で、上段(の左)にあるのはShift押下時に有効となるキーだ。)
LLフック使えば分かるが、英数キーのコード(VK_ALPHANUMERIC)はDownしか送られてこなくて Upが来ない。
従って置き換えは無理。

だからLLフックより上流(低レベル)でキーボード(ドライバ)からの信号のScanCodeを置き換える
ScanCodeMapで別のキーコード置き換えてから、LLフックで捕らえてキーアサイン変えている。
(フィルタドライバはそれより更に上流)