Windows XP SP1 did not support FireWire800 (1394b). Nevertheless, it worked, although the full performance of FireWire 800 wasn't achieved in some cases. With the release of Service Pack 2, Microsoft decided to no longer 'ignore' FireWire 800, but to treat it correctly according to the current OHCI specifications (Open Host Controller Interface). For Microsoft, at this time 'correctly' means switching to the slowest transfer mode S100, equalling 100 Mbit per second, for reasons of safety and compatibility.
Microsoft quotes unclear OHCI specifications as the reason for this slow down. Indeed OHCI does not clearly define 1394b. Current FireWire 800 chips send a 2-bit speed code of 0x3 (instead of 0x2 = S400) in the Self-ID-Packet 0. But OHCI only knows this code as 'reserved'. At a second glance, however, it becomes obvious that Microsoft have simply not looked closely enough, because there are additional Self-ID-Packets being sent. Self-ID-packet 8 correctly specifies the speed with the three-bit code 0x3 = S800. Packet 8 had been already defined in the '1394a supplement', and is therefore not an innovation of FireWire 800.
Microsoft's proceeding is thus at least controversial. In any case, it's a prime example of a somewhat unworldly bureaucratic-mindedness. Since there are no devices that only support S100, the need to throttle the bus speed does not actually exist. At least we do not know of any such devices, and as it seems Microsoft did not make this change because of actual complaints about incompatibilities. One is simply left wondering ...