Capturing will take packets from a network adapter, and save them to a file on your harddisk.
Since raw network adapter access requires elevated privileges these functions are isolated into the dumpcap program. It's only this program that needs these privileges, allowing the main part of the code (dissectors, user interface, etc) to run as normal user program.
To hide all the lowlevel machine dependent details from Wireshark, the libpcap/WinPcap (see Section 5.10, “libpcap/WinPcap (optional)”) library is used. This library provides a general purpose interface to capture packets from a lot of different network interface types (Ethernet, Token Ring, ...).