正しい英文です。
Who broke the window?
Did you know who broke the window?
意味は明らかに違いますよね。
上は、「誰が壊したの?」→「誰々です」とか「わかりません」
下は、「誰が壊したか知ってる?」→「はい、知ってます」「いえ、知りません」
Who から始まっていたら、「はい」「いいえ」とは答えられません。
Do (Did) などから始まっていたら、答え方は、「はい」「いいえ」。
それならば、こういうことになりますよね。
A: Do you know who broke the window? [Yes, No でしか答えられない]
B: No, I don't.
「誰が壊したか知っている?」という、Yes, No を求める疑問なら、この形でいいのですが、「誰が壊したと思う?」なら、Yes, No で答えると不自然ですよね。
「誰が壊したと思う?」 →「はい、知っています」 不自然ですね。
ですから、「誰が~したとおもいますか?」という文にするためには、Do などを文頭に置けないわけです。そのため、
Who ( do you know ) broke the window? とカッコ内を挿入することで、Yes, No で答える疑問文にならないようにするのです。
ある程度、英語の素養がある方だという前提で、他に、例文などは用いず、説明させていただきました。Who だけではなく、What などの疑問詞でも同じです。参考書などをご参照ください。