Question about SDK

I moved this to a separate topic.

This is a great start, but how do you actually do something useful such as calling controller from a different scope?

eg. I have public static void DataReceivedHandler(object sender, SerialDataReceivedEventArgs e) that reads commands from a bluetooth serial port that I want to then trigger actions on the Xbox 360 controller.

But as:
IXbox360Controller controller = client.CreateXbox360Controller();
is called in public static void Main() I don't have access to controller from the right scope.

You pass the controller object to your scope. That has little to do with the actual SDK but is more like a beginners question for C# in general. Nothing about the SDK is ViGEm-specific, if you're familiar with C# it should be fairly self-explanatory.