NdisMFreeSharedMemory

VOID 

  NdisMFreeSharedMemory(

    IN NDIS_HANDLE  MiniportAdapterHandle,

    IN ULONG  Length,

    IN BOOLEAN  Cached,

    IN PVOID  VirtualAddress,

    IN NDIS_PHYSICAL_ADDRESS  PhysicalAddress

    );

NdisMFreeSharedMemory´Â Àü¿¡ ¹ö½º¸¶½ºÅÍ DMA NICÀÇ µå¶óÀ̹ö¿¡ ÀÇÇØ NdisMAllocateSharedMemory ȤÀº NdisMAllocateSharedMemoryAsync¿¡ ÀÇÇØ Àü¿¡ ÇÒ´çµÈ ¸Þ¸ð¸®¸¦ ÇØÁ¦ÇÑ´Ù.

¸Å°³º¯¼ö

MiniportAdapterHandle
¿ø·¡ MiniportInitialize¿¡ ´ëÇÑ ÀÔ·ÂÀÎ ÇÚµéÀ» ÁöÁ¤ÇÑ´Ù.

Length
¿ø·¡ ÇÒ´çµÈ ¹ÙÀÌÆ® ¼öµéÀ» ÁöÁ¤ÇÑ´Ù.

Cached
¸¸¾à ¿ø·¡ ÇÒ´çÀÌ Ä³½¬°¡ µÉ ¼ö ÀÖ´Ù¸éÀº TRUE¸¦ ÁöÁ¤ÇÑ´Ù.

VirtualAddress
NdisMAllocateSharedMemory(Async)¿¡ ÀÇÇØ ¸®ÅÏµÈ º£À̽º °¡»ó ÁÖ¼Ò¸¦ ÁöÁ¤ÇÑ´Ù.

PhysicalAddress
NdisMAllcoateSharedMemory(Async)¿¡ ÀÇÇØ ¸®ÅÏµÈ ÀÀ´äÇÏ´Â ½ÇÁ¦ ÁÖ¼Ò¸¦ ÁöÁ¤ÇÑ´Ù.

ÁÖ¼®

¸¸¾à ÀÌ¹Ì NdisMAllcoateSharedMemory ȤÀº NdisMAllocateSharedMemoryAsync¿¡ ´ëÇÑ ¼º°øÀûÀΠȣÃâÀ» ¸¸µç´Ù¸éÀº, ¹ö½º¸¶½ºÅÍ DMA ÀåÄ¡¿¡ ´ëÇÑ NIC µå¶óÀ̹ö´Â ¸¸¾à ´ÙÀ½°ú °°Àº ¾î¶² °æ¿ì°¡ ÀϾ´Ù¸éÀº NdisMFreeSharedMemory¸¦ È£ÃâÇÑ´Ù.

  • MiniportInitialize ÇÔ¼ö´Â NICÀ» ÃʱâÈ­ÇÒ ¼ö ¾ø°í, ±×·¡¼­ ÀÌ ÇÔ¼ö´Â Á¦¾î¸¦ ¸®ÅÏÇϱâ Àü¿¡ ±×·¯ÇÑ NICÀ» À§ÇØ Çϵå¿þ¾î ÀÚ¿øµé¿¡ ´ëÇÑ ¸ðµç Á¸ÀçÇÏ´Â ¿ä±¸µéÀ» ÇØÁ¦ÇØ¾ß ÇÑ´Ù.
  • ¸Þ¸ð¸®¸¦ ÇÒ´çÇÑ ¹Ì´ÏÆ÷Æ®°¡ Á¦°ÅµÇ¾úÀ» ¶§ NIC
  • µå¶óÀ̹ö°¡ ½Ã½ºÅÛÀÌ ¼Ë´Ù¿î µÇ°Å³ª ȤÀº ³×Æ®¿öÅ© ¿ä¼ÒµéÀ» À籸¼ºÇÑ »ç¿ëÀÚ°¡ ±â°è¿¡¼­ »ç¿ëµÇ¾ú±â ¶§¹®¿¡ ¾ð·ÎµåµÈ´Ù.
  • µå¶óÀ̹ö°¡ NIC¿¡ ´ëÇÑ I/O ¿ä±¸°¡ ¸¹Áö¸¸Àº ³×Æ®¿öÅ© Æ®·¡ÇÈÀÌ Áö±Ý Æò±Õ ·¹º§º¸´Ù ³·À» ¶§ NdisMAllocateSharedMemoryAsync·Î Ãß°¡ÀûÀÎ °øÀ¯ ¸Þ¸ð¸®¸¦ ÇÒ´çÇÑ´Ù.
¹Ì´ÏÆ÷Æ®´Â ÇÒ´çµÈ °øÀ¯ ¸Þ¸ð¸® ¹üÀ§³»¿¡¼­ ºÎºÐ¹üÀ§¸¦ ÇØÁ¦Çϱâ À§ÇØ NdisMFreeSharedMemory¸¦ È£ÃâÇÒ ¼ö ¾ø´Ù. NdisMFreeSharedMemory¿¡ Àü´ÞµÇ´Â ¸Å°³º¯¼öµéÀº Á¤È®ÇÏ°Ô NdisMAllocateSharedMemory ȤÀº NdisMAllocateSharedMemoryAsync¿¡ Àü´ÞµÇ¾îÁö´Â °Íµé°ú Á¤È®ÇÏ°Ô ÀÏÄ¡ÇØ¾ß ÇÑ´Ù.

NdisMFreeSharedMemory ÇÔ¼ö´Â MiniportShutdown ÇÔ¼ö·ÎºÎÅÍ È£ÃâµÇ¾îÁú ¼ö ¾ø´Ù.

NdisMFreeSharedMemoryÀÇ È£ÃâÀÚµéÀº MiniportHaltÀÇ ÄÁÅØ½ºÆ®³»¿¡¼­ ÀÌ °æ¿ì¿¡´Â ÀÌ ÇÔ¼öÀÇ È£ÃâÀÚµéÀº IRQL PASSIVE_LEVEL¿¡¼­ ½ÇÇàÇØ¾ß ÇÑ´Ù. ¸¦ Á¦¿ÜÇØ¼­ IRQL <= DISPATCH_LEVEL¿¡¼­ ½ÇÇàÇÑ´Ù.