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¿¡¼ ½ÇÇàµÇ¾î¾ßÇÑ´Ù.
|