The 18-year-old spent one season with the Under 18s before moving into the Under 21s squad last term.
A Northern Ireland youth international, McKnight turns 19 in August and played regularly for the Under 21s last term in midfield and in defence.
Speaking about extending his stay, McKnight said, "I am really pleased to sign for Barnsley and I am looking forward to the challenge of trying to get in the team,”
“I am a central-midfielder but I am capable of playing at right-back."