reading nt symbol files?

Hi,
using windbg, kd with proper nt symbols installed on the computer, it
appears that one can take a look at internal kernel variables .

so for e.g., one could take a look at the contents of EPROCESS for a given
process with the !process command inside kd.

now the question is, how does windbg or kd for that matter access this
information? is there a way that my program in kernel mode with proper
symbols installed do the same?

kutty