http://support.microsoft.com/kb/322091のコードを使用して生データを USB プリンターに送信しています。このドキュメントでは、データの送信方法のみを説明していますが、一部のプリンターはデータを報告します。
そのコードを拡張できるかどうか疑問に思っているので、プリンターから受信したデータでもイベントが発生します。そのコードの拡張に基づいてそれが可能かどうかはわかりません。
//something like
[DllImport("winspool.Drv", EntryPoint = "ReadPrinter", SetLastError = true, ExactSpelling = true, CallingConvention = CallingConvention.StdCall)]
public static extern bool ReadPrinter(IntPtr hPrinter, IntPtr pBytes, Int32 dwCount, out Int32 dwRead);