Duplicate from my earlier attempts and question at this post
As far as I know this is not correctly supported (nor documented) in the EDSDK, nor have I encountered public workarounds. It also proves hard to get a good contact in Canon (even from within the company) that can help us all out. EOS Utility internally can do it but uses undocumented PTP calls (that could be recorded and reverse engineered).
Unfortunately, your best bet is to either
- shoot RAW and do custom whitebalancing in post. The as-shot WB is just random.
- approximate white balance using Color Temperature and custom temperature shift. These can be pushed into JPGs.