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);
|