In theory somebody could write a PassThru (SAE J2534) driver that hides the communication details. In reality there is no driver or SDK for the ELM, so each developer must hack something together that handles bits and bytes on the serial port.
If instead you use a tool like
Mongoose you can use the
J2534 driver functions to connect, send and receive messages, setup periodic messages, and apply message filters. The device driver should be responsible for the implementation details; you just want to "get on the network".
The driver should be provided (free) by the vehicle interface manufacturer for their hardware -- you're not charged for printer drivers either.

Interface manufacturers can purchase the
J2534 specification from SAE for about $50. There are no royalties or other fees. It's an open international standard that isn't supported by lowest-end devices like ELM.