How long have you been knocking at the door?
Рассмотрим предложенные варианты:
1) you have been knocking – так как это вопрос, мы должны употреблять глагол до you, значит этот вариант неправильный
2) have you being knocked – это passive voice (пассивный залог), но стучишься ты, а не в тебя стучатся, вариант неправильный
3) have you been knocking – верно
Перевод: как долго ты уже стучишься в дверь?