The first step to reducing input latency is to eliminate the frame queue. Usually the driver allows the CPU to submit up to 3 frames worth of rendering commands, which means that on a 60Hz monitor the image being displayed could represent input from up to 45ms ago because of the frame queue.
The frame queue exists to eliminate GPU bubbles where the GPU sits idle waiting for the CPU to send new rendering commands. If the game developer puts in the work of eliminating these GPU bubbles as much as possible then it's possible to turn off the frame queue while maintaining a good frame rate.
This step of reducing latency does not require intercepting any calls and is probably what is being done in AMD Anti-Lag. However there is a further step to reducing input latency that AMD called Anti-Lag+ that does require extra hooks in the engine. I explained that in this comment: https://news.ycombinator.com/item?id=37879517
Triple buffering maintains a queue* of fully rendered frames ready to be displayed by the monitor. What I'm talking about is a queue of rendering commands for frames that still need to be rendered by the GPU.
* triple buffering does not actually use a queue, but rather two buffer swaps, which means a frame is allowed to skip ahead if completed early.
Turning it off means doing what instead? No vsync at all will certainly give you faster updates, if you don't mind the tearing. But in general I would describe triple buffering as a way to reduce lag when vsync is on but your system is fast.
The frame queue exists to eliminate GPU bubbles where the GPU sits idle waiting for the CPU to send new rendering commands. If the game developer puts in the work of eliminating these GPU bubbles as much as possible then it's possible to turn off the frame queue while maintaining a good frame rate.
This step of reducing latency does not require intercepting any calls and is probably what is being done in AMD Anti-Lag. However there is a further step to reducing input latency that AMD called Anti-Lag+ that does require extra hooks in the engine. I explained that in this comment: https://news.ycombinator.com/item?id=37879517