NdisMAllocateSharedMemoryAsync
NDIS_STATUS
NdisMAllocateSharedMemoryAsync(
IN NDIS_HANDLE MiniportAdapterHandle,
IN ULONG Length,
IN BOOLEAN Cached,
IN PVOID Context
);
|
º¸Åë ¹Ì´ÏÆ÷Æ®°¡ ÀÌ¿ëÇÒ ¼ö ÀÖ´Â NIC ¸®½Ãºê ¹öÆÛ°¡ ÀúÁ¶ÇÒ ¶§ NdisMAllocateSharedMemoryAsync ÇÔ¼ö´Â ¹Ì´ÏÆ÷Æ®¿Í ¹ö½º¸¶½ºÅÍ DMA NIC »çÀÌ¿¡ °øÀ¯µÈ Ãß°¡ ¸Þ¸ð¸®¸¦ ÇÒ´çÇÑ´Ù.
¸Å°³º¯¼ö
- MiniportAdapterHandle
- MiniportInitialize·Î µé¾î¿À´Â ¿ø·¡ÀÇ ÇÚµéÀ» ¼¼úÇÑ´Ù..
- Length
- ÇÒ´çÇÒ ¹ÙÀÌÆ® ¼ö¸¦ ¼¼úÇÑ´Ù.
- Cached
- ¸Þ¸ð¸®°¡ ij½¬µÉ ¼ö ÀÖ´Ù¸é TRUE¸¦ ¼¼úÇÑ´Ù.
- Context
- MiniportAllocateComplete ÇÔ¼ö°¡ È£ÃâµÉ ¶§ MiniportAllocateComplete ÇÔ¼ö·Î ÀüÇØÁö´Â µå¶óÀ̹ö°¡ °áÁ¤ÇÑ ÄÁÅØ½ºÆ®¸¦ °¡¸®Å²´Ù.
¸®Åϰª
´ÙÀ½Áß Çϳª¸¦ ¸®ÅÏÇÒ ¼ö ÀÖ´Ù:
- NDIS_STATUS_PENDING
- È£ÃâÀÚÀÇ MiniportAllocateComplete ÇÔ¼ö´Â ¸ÊµÈ °¡»óÀÇ ±×¸®°í ÀåÄ¡¿¡ Á¢±Ù °¡´ÉÇÑ °øÀ¯ ¸Þ¸ð¸® ¹üÀ§¿¡ ´ëÇÑ ³í¸® ±âº» ÁÖ¼ÒµéÀ» °¡Áö°í È£ÃâµÈ´Ù. ¿©±â¼ ¹üÀ§´Â ¿äûµÈ ¸Þ¸ð¸®°¡ ÇÒ´çµÆÀ» ¶§ ±×°ÍÀÇ ±æÀÌ¿Í ÄÁÅØ½ºÆ®ÀÇ Æ÷ÀÎÅÍÀÌ´Ù. ¹Ý¸é¿¡ MiniportAllocateComplete ÇÔ¼ö´Â °øÀ¯ ¸Þ¸ð¸®ÀÇ ÇÒ´ç ½Ãµµ°¡ ½ÇÆÐÇÒ °æ¿ì NULL Æ÷ÀÎÅ͸¦ °¡Áö°í È£ÃâµÈ´Ù.
- NDIS_STATUS_FAILURE
- ÀÌ °æ¿ì ¿äûµÈ ¸Þ¸ð¸®´Â ÇÒ´çµÉ ¼ö ¾ø´Ù. NdisMAllocateSharedMemoryAsync ÇÔ¼ö°¡ ÀÌ »óŸ¦ ¸®ÅÏÇÑ´Ù¸é, ¶È°°Àº ÆÄ¶ó¹ÌÅ͸¦ °®´Â ´ÙÀ½ È£ÃâÀº ¼º°øÇÒÁöµµ ¸ð¸¥´Ù. ÀÌ´Â ½Ã½ºÅÛ ¸®¼Ò½ºÀÇ »ç¿ë°¡´É ¿©ºÎ¿¡ ´Þ·ÁÀÖ´Ù.
ÁÖ¼®
³ôÀº ³×Æ®¿öÅ© Æ®·¡ÇÈÀÌ µå¶óÀ̹ö°¡ ÃʱâÈ µ¿¾È¿¡ ÇÒ´çÇÑ °øÀ¯ ¸Þ¸ð¸® °ø°£¿¡ °úµµÇÑ ¿ä±¸¸¦ ÇÒ ¶§ ¹ö½º¸¶½ºÅÍ DMA NICÀÇ µå¶óÀ̹ö´Â Àü´Þ±â´É¿¡ ´ëÇÑ °øÀ¯ ¸Þ¸ð¸®¸¦ µ¿ÀûÀ¸·Î ÇÒ´çÇϱâ À§ÇØ NdisMAllocateSharedMemoryAsync¸¦ È£ÃâÇÑ´Ù.
±×·¯ÇÑ NIC µå¶óÀ̹ö´Â µé¾î¿À´Â Àü´Þ¿¡ ´ëÇØ »ç¿ë°¡´ÉÇÑ °øÀ¯ ¸Þ¸ð¸® ¹öÆÛÀÇ ¼ö¸¦ ±â·ÏÇϱâ À§ÇØ º¸Åë Çϳª³ª ±× ÀÌ»óÀÇ »óÅ º¯¼ö¸¦ À¯ÁöÇÑ´Ù. »ç¿ë°¡´ÉÇÑ ¹öÆÛÀÇ ¼ö°¡ µå¶óÀ̹ö °áÁ¤ Low ÀÏ ¶§, ¹Ì´ÏÆ÷Æ®´Â °øÀ¯ ¸Þ¸ð¸® °ø°£¿¡ ±× ÀÌ»óÀÇ ¹öÆÛ °ø°£À» ÇÒ´çÇϱâ À§ÇØ NdisMAllocateSharedMemoryAsync ÇÔ¼ö¸¦ È£ÃâÇÑ´Ù. »ç¿ë°¡´ÉÇÑ ¹öÆÛÀÇ ¼ö°¡ µå¶óÀ̹ö °áÁ¤ highÀÏ ¶§, ¹Ì´ÏÆ÷Æ®´Â ÀÌÀü µ¿Àû ÇÒ´ç¿¡ ´ëÇÑ ÇØÁ¦·Î NdisMFreeSharedMemory ÇÔ¼ö¸¦ ¿©·¯¹ø È£ÃâÇÑ´Ù.
º¸Åë ±×·¯ÇÑ µå¶óÀ̹ö´Â MiniportHalt ÇÔ¼ö°¡ È£ÃâµÆ¿ï ¶§ MiniportInitialize ÇÔ¼ö°¡ NdisMAllocateSharedMemory ÇÔ¼ö¸¦ °¡Áö°í ÇÒ´çÇß´ø °øÀ¯ ¸Þ¸ð¸® ºí·°À» NICÀÌ Á¦°ÅµÉ ¶§±îÁö À¯ÁöÇÑ´Ù. ÀÌ ÇÒ´çÀº NICÀ» ÅëÇÑ Àü´Þ¿¡ ´ëÇÑ Æò±ÕÀû ¿ä±¸¸¦ ó¸®Çϱ⿡´Â ÃæºÐÇÏ´Ù.
NdisMAllocateSharedMemoryAsyncÀ̳ª NdisMAllocateSharedMemory ÇÔ¼ö¸¦ È£ÃâÇÏ´Â ¾î¶² ¹Ì´ÏÆ÷Æ®´Â NICÀ» Á¦°ÅÇÒ ¶§ ¿©·¯¹øÀÇ NdisMFreeSharedMemory ÇÔ¼ö È£ÃâÀ» ÅëÇØ¼ ¹ÌÇØ°áÀÇ ¸ðµç ÇÒ´çÀ» ÇØÁ¦ÇؾßÇÑ´Ù.
NdisMAllocateSharedMemoryAsync ÇÔ¼öÀÇ È£ÃâÀÚ´Â IRQL <= DISPATCH_LEVEL¿¡¼ ½ÇÇàÇÑ´Ù.
|