Can I use ControllerId as a Player Id?

I’ve got a custom GameViewportClient, and overriden the InputKey(EventArgs) func.
My plan is to handle players pressing “Start” to join Local multiplayer.

Ive got mouse+keyboard, and 2 controllers.
When I check the InputKey’s EventArgs object for the ControllerId they are 0,2,3 (for keyboard, gampad1, gamepad2). I think id 1 is missing cos one of my controllers is a bit rubbish and windows sees it as 2 gamepads.

If I was to do CreateCharacter() at this point, can I use the ControllerId as a way of mapping this gamepad to this newly created character?
That way I could do a check later that says “if ControllerId already in game, do not create a character/controller again for this player”

Hope this makes sense