Found by Driver Verifier.
if (Endpoint->StateLast == USBPORT_ENDPOINT_ACTIVE)
{
+ KeReleaseSpinLockFromDpcLevel(&Endpoint->StateChangeSpinLock);
KeAcquireSpinLockAtDpcLevel(&FdoExtension->MiniportSpinLock);
Packet->SetEndpointState(FdoExtension->MiniPortExt,
KeReleaseSpinLockFromDpcLevel(&FdoExtension->MiniportSpinLock);
}
+ else
+ {
+ KeReleaseSpinLockFromDpcLevel(&Endpoint->StateChangeSpinLock);
+ }
- KeReleaseSpinLockFromDpcLevel(&Endpoint->StateChangeSpinLock);
KeReleaseSpinLock(&Endpoint->EndpointSpinLock, Endpoint->EndpointOldIrql);
}