NdisScheduleWorkItem

NDIS_STATUS

  NdisScheduleWorkItem(

    IN PNDIS_WORK_ITEM  WorkItem

    );

NdisScheduleWorkItem ÇÔ¼ö´Â ½Ã½ºÅÛ ÀÛ¾÷ÀÚ ½º·¹µå°¡ ¾ÆÀÌÅÛÀ» Á¦°ÅÇÑ Å¥¾ÈÀ¸·Î ÁÖ¾îÁø ÀÛ¾÷ ¾ÆÀÌÅÛÀ» »ðÀÔÇϰí Àü¿¡ µå¶óÀ̹ö°¡ NdisInitializeWorkItem ÇÔ¼öÈ£Ãâ·Î Á¦°øÇÑ ÄݹéÇÔ¼ö·Î Á¦¾î¸¦ ÁØ´Ù.

¸Å°³º¯¼ö

WorkItem
NdisInitializeWorkItem ÇÔ¼ö·ÎÀÇ ¾Õ¼± È£Ãâ¿¡¼­ ¼³Á¤µÈ ÀÛ¾÷ ¾ÆÀÌÅÛÀ» °¡¸®Å²´Ù.

ÁÖ¼®

NdisScheduleWorkItem ÇÔ¼ö·ÎÀÇ È£ÃâÀº NDIS µå¶óÀ̹ö·Î ÇÏ¿©±Ý ¸î¸î µå¶óÀ̹ö °áÁ¤¿¬»êÀ» Áö¿¬Çϵµ·Ï ÇÑ´Ù. µå¶óÀ̹ö °áÁ¤¿¬»êÀº ÀÛ¾÷ÀÚ ½º·¹µå ÄݹéÇÔ¼ö¿¡¼­ ÇöÀç ½ÇÇàµÇ´Â »ó½ÂµÈ IRQLº¸´Ù ´õ ³·Àº IRQL¿¡¼­ ½ÇÇàµÇ¾î¾ßÇÑ´Ù.

µå¶óÀ̹öÀÇ ÄݹéÀº ³ªÁß¿¡ IRQL PASSIVE_LEVEL¿¡¼­ ½Ã½ºÅÛ ½º·¹µå ÄÁÅØ½ºÆ® ¾È¿¡¼­ ½ÇÇàµÈ´Ù. ÀÌ È£ÃâÀÚ Á¦°ø ÇÔ¼ö´Â WorkItemÀ» À§Çؼ­ µå¶óÀ̹ö°¡ ÇÒ´çÇÑ ÀúÀå¼ÒÀÇ È¸¼ö¿¡ Ã¥ÀÓÀ» Áø´Ù. ¿¹¸¦µé¾î, µå¶óÀ̹ö°¡ NdisInitializeWorkItem ÇÔ¼ö¿¡ ´ëÇÑ ÄÁÅØ½ºÆ® Áö¿ªÀ» Á¦°øÇϱâ À§Çؼ­ NdisAllocateMemory ÇÔ¼ö¸¦ È£ÃâÇÑ´Ù¸é ±×°ÍÀÇ ÄݹéÇÔ¼ö´Â ÅëÁ¦¸¦ ¸®ÅÏÇϱâ Àü¿¡ WorkItemÀ» °¡Áö°í NdisFreeMemory ÇÔ¼ö·Î »ó¹ÝµÈ È£ÃâÀ» ÇØ¾ßÇÑ´Ù.

µå¶óÀ̹ö°¡ ÇϳªÀÇ µ¿±âÈ­ °´Ã¼¸¦ À¯ÁöÇϰí ÀÖ°í ¶Ç´Ù¸¥ µ¿±âÈ­ °´Ã¼¸¦ ¾òÀ¸·Á°í ½ÃµµÇÑ´Ù¸é µå¶óÀ̹ö´Â ¿¬»êÀ» ¿Ï·áÇÏ´Â Äݹé·çƾ¿¡ ´ëÇØ¼­ ±â´Ù¸± Çʿ䰡 ¾ø´Ù. ¿¹¸¦µé¾î, NDIS µå¶óÀ̹ö´Â NdisScheduleWorkItem ÇÔ¼ö¸¦ È£ÃâÇϱâÀü¿¡ ÇöÀç À¯ÁöÇÏ´Â ½ºÇɶôÀ» ÇØÁ¦ÇؾßÇÑ´Ù. ÃÖ»óÀ§ ·¹º§ NDIS ÇÁ·ÎÅäÄÝ µå¶óÀ̹ö´Â ¶ÇÇÑ NdisScheduleWorkItem ÇÔ¼ö¸¦ È£ÃâÇϱâ Àü¿¡ ÇöÀç À¯ÁöÇϰí ÀÖ´Â ¼¼¸¶Æ÷¾î, ¹ÂÅØ½º, º¯¼öÀÚ¿øµéÀ» ÇØÁ¦ÇؾßÇÑ´Ù. µ¿±âÀûÀÎ ÀÛ¾÷ÀÚ ½º·¹µå ¿¬»êÀ» Å¥¿¡ ÀúÀåÇϱâ Àü¿¡ ¸ðµç µ¿±âÈ­ ÀÚ¿øÀ» ÇØÁ¦ÇÏ´Â °ÍÀº ±³Âø»óŸ¦ ¹æÁöÇÑ´Ù.

Á÷·ÄÈ­µÈ ¹Ì´ÏÆ÷Æ® µå¶óÀ̹ö´Â ÀÛ¾÷ÀÚ ½º·¹µå Äݹé·çƾÀ» Å¥¿¡ ÀúÀåÇÏÁö ¸»¾Æ¾ßÇÑ´Ù. ¿Ö³ÄÇϸé ÀÛ¾÷ÀÚ ½º·¹µå ÄݹéÀ» °¡Áø NIC ÄÁÅØ½ºÆ® Áö¿ªÀ¸·ÎÀÇ Á¢±ÙÀ» µ¿±âÈ­Çϱâ À§Çؼ­ µå¶óÀ̹ö´Â ¹æ¹ýÀÌ ¾ø±â ¶§¹®ÀÌ´Ù. °á°úÀûÀ¸·Î ±×·¯ÇÑ Á÷·ÄÈ­µÈ NDIS µå¶óÀ̹ö´Â ½Ã½ºÅÛÀÇ ÆÄ±«¾øÀÌ ÀÛ¾÷ÀÚ ½º·¹µå ÄݹéÇÔ¼ö¸¦ °¡Áø ¾î´ðÅÍ´ç ÄÁÅØ½ºÆ® Áö¿ª¿¡¼­ ¾Æ¹«°Íµµ °øÀ¯ÇÒ ¼ö ¾ø´Ù.

NdisScheduleWorkItem ÇÔ¼öÀÇ È£ÃâÀÚ´Â IRQL <= DISPATCH_LEVEL¿¡¼­ ½ÇÇàµÇ¾î¾ßÇÑ´Ù.