嵌套的 CONTAINING_RECORD 宏


第一個CONTAINING_RECORD&NPORT_RECV_PACKET_RSVD得到了NPROT_RECT_PACKET_RSVD.link的地址,因爲NPROT_RECT_PACKET_RSVD存於NDIS_PACKET.ProtocolReserved處,所以NPROT_RECT_PACKET_RSVD.link的地址就NDIS_PACKET結構中最後一個成員ProtocolReserved的地址。


第一個CONTAINING_RECORD&NDIS_PACKET得到了NDIS_PACKET結構的首地址,因爲第一個CONTAINING_RECORD返回的正是ProtocolReserved的地址,再用該地址減去結構體成員ProtocolReserved到首地址的距離(&NDIS_PACKET.ProtocolReserved)就得到了包描述符的首地址。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章