NdisTransferData
VOID
NdisTransferData(
OUT PNDIS_STATUS Status,
IN NDIS_HANDLE NdisBindingHandle,
IN NDIS_HANDLE MacReceiveContext,
IN UINT ByteOffset,
IN UINT BytesToTransfer,
IN OUT PNDIS_PACKET Packet,
OUT PUINT BytesTransferred
);
|
NdisTransferData´Â ¾Æ·§°èÃþÀÇ NIC¿¡¼ ¹ÞÀº µ¥ÀÌÅ͸¦ Ä«ÇÇÇϱâ À§ÇÑ ¿ä±¸¸¦ ÇÁ·ÎÅäÄÝ Á¦°ø ÆÐŶ¿¡ º¸³½´Ù.
¸Å°³º¯¼ö
- NdisBindingHandle
- NdisOpenAdapter¿¡ ÀÇÇØ ¸®ÅÏµÈ Çڵ鰪
- MacReceiveContext
- ¾Æ·¡ °èÃþ µå¶óÀ̹ö ÇÚµé
- ByteOffset
- Àü¼ÛÇϱ⠽ÃÀÛÇÒ °÷ÀÇ ¼ö½Å ³×Æ®¿÷ ÆÐŶÀÇ ½ÃÀÛÀ¸·ÎºÎÅÍÀÇ ¿É¼Â
- BytesToTransfer
- Àü¼ÛÇϱâ À§ÇÑ ¹ÙÀÌÆ® ¼ö. ÀÌ °ªÀº 0ÀÌ µÉ ¼ö ÀÖ´Ù.
- Packet
- È£ÃâÀÚ¿¡ ÀÇÇØ Á¦°øµÇ´Â ÆÐŶ µð½ºÅ©¸³ÅÍ·Î ¾Æ·§ °èÃþÀÇ NIC°¡ µ¥ÀÌÅ͸¦ Ä«ÇÇÇÒ Àå¼ÒÀÌ´Ù.
- BytesTransferred
- È£ÃâÀÚ°¡ Á¦°øÇÒ º¯¼öÀÌ´Ù. ÀÌ ÇÔ¼ö´Â ½ÇÁ¦ Àü¼ÛµÇ¾îÁö´Â ¹ÙÀÌÆ®¼ö¸¦ ¸®ÅÏÇÑ´Ù.
ÁÖ¼®
¸î¸î ÇÁ·ÎÅäÄݵéÀº ÇϳªÀÇ ¾Æ·§ °èÃþ NIC°ú ¹Ù¿îµåµÇ¾îÁú ¼ö ÀÖ´Ù. ±×¸®°í °¢ ±×·¯ÇÑ ÇÁ·ÎÅäÄÝ µå¶óÀ̹öµéÀº °°Àº ÆÐŶÀ» À§ÇÑ Áö½Ã¸¦ ¹ÞÀ» ¼ö ÀÖ´Ù. ±×·¯ÇÑ ÆÐŶÀº ÇÁ·ÎÅäÄÝ µå¶óÀ̹ö¿¡°Ô´Â Àбâ Àü¿ëÀÌ´Ù. °¢ ±×·¯ÇÑ µå¶óÀ̹öÀÇ ProtocolReceive ÇÔ¼ö´Â NdisTransferData ÇÔ¼ö·Î Áö½ÃµÈ ÆÐŶÀÇ º¹»ç¸¦ ÇÏ´À³Ä¸¦ °áÁ¤ÇÑ´Ù.
NdisTransferData¸¦ È£ÃâÇϱâ Àü¿¡, ÇÁ·ÎÅäÄÝÀº ÆÐŶ µð½ºÅ©¸³Å͸¦ ÇÒ´çÇØ¾ß Çϰí, ¾Æ·§ °èÃþ µå¶óÀ̹ö°¡ µ¥ÀÌÅ͸¦ Ä«ÇÇÇÏ´Â °÷¿¡ ÇÁ·ÎÅäÄÝ ÇÒ´ç ¹öÆÛµéÀ» ¸ÊÇÎÇÏ´Â ¸î°¡Áö ¹öÆÛ µð½ºÅ©¸³Å͵éÀ» ¿¬°á(chain)ÇØ¾ß ÇÑ´Ù. ÇÁ·ÎÅäÄÝÀº ¶ÇÇÑ NdisTransferData¸¦ È£ÃâÇϱâ Àü¿¡ ÆÐŶ µð½ºÅ©¸³ÅÍÀÇ ProtocolReserced ºÎºÐÀ» ¼³Á¤ÇØ¾ß ÇÑ´Ù.
NdisTransferData È£ÃâÀÚ´Â IRQL <= DISPATCH_LEVEL¿¡¼ ½ÇÇàÇÑ´Ù.
|