I haven't either.
Poking through use-cases, it appears socket(2) is for userland-userland communcation. Sorry to have mislead you.
(There is the project at
http://ksocket.sourceforge.org, dating from 2007, but that is Linux-specific. There was the ECalls project at
http://www.cc.gatech.edu/systems/pro...ux/ecalls.html, but that appears to have been an academic research project from 2000-2001. It generated three papers but no apparent software.)
Other thoughts:
The tun(4) driver is a way for userland programs to access the network stack. This might be applicable, but I would think that would only be if your driver is a network driver, and only if the data of interest are incoming or outgoing packets. The bpf(4) device is probably better for that, anyway.
FreeBSD -- you don't mention your OS -- has a kenv(2) call that allows a userland program to inspect and change kernel environment variables. It is in support of the kenv(1) userland utility.