for mouse and keyboard, normally there is a dedicated endpoint used for INTERRUPT transfer ( or using REQUEST_STATUS via control transfer ).
host polls device status periodically by sending IN packet to this endpoint, device updates its status by responding to IN transaction.
All the USB transactions are initiated/expected by the host.