A couple of queries regarding packet filtering

I am able to hook my driver to the Win2000 based filter driver.
However, I am not able to interpret the packet header or the packet data.
I used the eg. in DDK docs to check for protocol type as,
if(PacketHeader->iph_protocol==6) // TCP
{
// do something
}
This did not compile.
I also tried to cast this to IPHeader structure documented in DDK.
But compiler gave an error saying “undeclared identifier”.
I don’t no the header file of this structure either.
Can somebody tell me how to interpret the packet header?

Another query is regarding checking for the port no. on which the packet is destined. This field is not even the part of the IPHeader structure.

Any help on either of these two queries will be really appreciated.
–Makarand