NDIS_GET_ORIGINAL_PACKET

PNDIS_PACKET

  NDIS_GET_ORIGINAL_PACKET(

    IN PNDIS_PACKET  Packet

    );

NDIS_GET_ORIGINAL_PACKETÇÔ¼ö´Â NDIS µå¶óÀ̹ö°¡ °¡¸®Å°´Â ÃþÈ­µÈ ½ºÅÃÀÇ ÃÖÇÏÀ§ ·¹º§ ÆÐŶ µð½ºÅ©¸³ÅÍÀÇ Æ÷ÀÎÅ͸¦ ¸®ÅÏÇÑ´Ù. µå¶óÀ̺¸¸¦ È£ÃâÇÏ´Â °ÍÀº µå¶óÀ̹ö ¾Æ·¡ µå¶óÀ̹ö°¡ °¡¸®ÄÑ Áö´Â ÆÐŶ º¸´Ù ¿À¸®Áö³Î ÆÐŶÀ¸·ÎºÎÅÍ OOB µ¥ÀÌÅÍ ºí·°¿¡ Á¢±Ù ÇØ¾ß ÇÑ´Ù. ¸¸¾à µå¶óÀ̺¸¸¦ È£ÃâÇÏ´Â °ÍÀÌ ÃþÈ­µÈ ½ºÅÃÀÇ ÆÄÆ®°¡ ¾Æ´Ï¸é, ¸®ÅÏµÈ ÆÐŶ µð½ºÅ©¸³ÅÍ´Â µå¶óÀ̹ö ¾Æ·¡ È£ÃâÇÏ´Â µå¶óÀ̹ö°¡ °¡¸®ÄÖ´ø °Í°ú ÀÏÄ¡ ÇØ¾ß ÇÑ´Ù.

¸Å°³º¯¼ö

Packet
µå¶óÀ̹ö ¾Æ·¡ È£ÃâÇÏ´Â µå¶óÀ̹ö°¡ °¡¸®ÄÑÁö´Â ÆÐŶ µð½ºÅ©¸³Å͸¦ °¡¸®Å²´Ù.

¸®Åϰª

NDIS_GET_ORIGINAL_PACKETÇÔ¼ö´Â NDIS µå¶óÀ̹ö°¡ °¡¸®Å°´Â ÃþÈ­µÈ ½ºÅÃÀÇ ÃÖÇÏÀ§ ·¹º§ ÆÐŶ µð½ºÅ©¸³ÅÍÀÇ Æ÷ÀÎÅ͸¦ ¸®ÅÏÇϰųª,¸¸¾à µå¶óÀ̺¸¸¦ È£ÃâÇÏ´Â °ÍÀÌ ÃþÈ­µÈ ½ºÅÃÀÇ ÆÄÆ®°¡ ¾Æ´Ï¸é, NDIS_GET_ORIGINAL_PACKETÇÔ½º´Â µå¶óÀ̹ö ¾Æ·¡ È£ÃâÇÏ´Â µå¶óÀ̹ö°¡ °¡¸®Ä×´ø ÆÐŶ µð½ºÅ©¸³Å͸¦ ¸®ÅÏÇÑ´Ù.

ÁÖ¼®

°üÇàÀûÀ¸·Î NDIS_GET_ORIGINAL_PACKETÇÔ¼ö¿¡ ÀÇÇØ ¸®ÅÏµÈ ÆÐŶÀº µå¶óÀ̹ö ¾Æ·¡ È£ÃâÇÏ´Â µå¶óÀ̹ö¿¡ÀÇÇá À§·Î °¡¸®ÄÑÁø ÆÐŶ°ú °°´Ù. ¿¹¸¦ µé¾î, »óÀ§·¹º§ µå¶óÀ̹ö·Î ÆÐŶÀ» °¡¸®Å°±â À§ÇØ µå¶óÀ̹ö´ÂÇÏÀ§ ·¹º§ µå¶óÀ̺¸°¡ À§·Î °¡¸®ÄÑÁØ ¹ÞÀº ÆÐŶÀ» È£ÃâÇÒ ¼ö ÀÖ´Ù. µå¶óÀ̹ö´Â NdisGetReceivedPacket ÇÔ¼ö¸¦ È£ÃâÇÒ ¼ö ÀÖ´Ù.

NDIS µå¶óÀ̺¸ÀÇ ÃæÈ­µÈ ½ºÅÃÀÇ ÃÖÇÏÀ§ ·¹º§ µå¶óÀ̹ö¿¡ ÀÇÇØ À§·Î °¡¸®ÄÑÁø ÆÐŶÀÇ Æ÷ÀÎÅ͸¦ ¾ò±âÀ§ÇØ, ÇÁ·ÎÅäÄÝ·Ö ÀÎÅ͹̵ð¾ù µå¶óÀ̹ö´Â NDIS_GET_ORIGINAL_PACKETÇÔ¼ö¸¦ È£ÃâÇÑ´Ù. ÀÌ È£Ãâ¿¡¼­, ±×°ÍµéÀº ¹ÞÀº ÆÐŶÀÇ Æ÷ÀÎÅ͸¦ ÆÐ½ºÇÑ´Ù. ÀÌ È£ÃâÀ» »ç¿ëÇÏ´Â °ÍÀº, ÃþÈ­µÈ ½ºÅÃÀÇ °¢ µå¶óÀ̹ö´Â ÆÐŶÀÌ °¢ ÃþÀ¸·Î Ä«ÇǵǴ °ÍÀ» ¿ä±¸ÇÏ´Â °Í ¾øÀÌ ³×Æ®¿÷À¸·Î ºÎÅÍ ¹ÞÀº ÆÐŶ°ú ¿¬°áµÈ OOBµ¥ÀÌÅÍ ºí·°¿¡ Á¢±ÙÇÒ ¼ö ÀÖ´Ù.

ÀÌ ¸ÅÅ©·ÎÀÇ È£ÃâÀÚ´Â ¾î¶² IRQL¿¡¼­µµ ½ÇÇà µÉ ¼ö ÀÖ´Ù.

Example

´ÙÀ½ÀÇ ÄÚµå ¿¹´Â ȸ¼öÇÑ ÆÐŶÀ¸·Î ºÎÅÍ ¿À¸®Áö³Î ÆÐŶÀ» ¾ò´Â °Í°ú µå¶óÀ̹ö ¾Æ·¡·Î ºÎÅÍ ¹Þ¾Ò´ø ÆÐŶÀ» ¹Þ´Â °ÍÀÌ´Ù.


// Get the original packet, which could be the received packet

// or the packet originating from the lowest-level driver.

// This result is based on the number of layered drivers in the stack.

//



Pkt = NdisGetReceivedPacket(BindingHandle, MacReceiveContext);

OrigPkt = NDIS_GET_ORIGINAL_PACKET(Pkt);