I'm thinking of making a game that requires two mice to play. It needs to register the movements separately from one another. Is this possible? Or does the Windows architecture not allow for such things?
Because mice are just another kind of HID (human interface device) you can plug in as many as you want, but custom software is required to actually do anything with them, as Windows API will typically offer functions to get "the" mouse pointer.
There are some links over SuperUser, but be advised the answers there mainly contain links (sometimes dead) to vaporware, phantomware, and an academic article on ergonomics from 2004. There may be no real solutions there.
Looks like it can be done using calls to
user32.dll to the GetRawInput* methods.
There is an example of how to do this in rawinput-sharp.
I apologize for the link-only answer but the solution would make for quite a long post. The first link is the official documentation and the second is a C# wrapper you can use.