TdiPnPPowerRequest
NTSTATUS
TdiPnPPowerRequest(
IN PUNICODE_STRING DeviceName,
IN PNET_PNP_EVENT PowerEvent,
IN PTDI_PNP_CONTEXT Context1,
IN PTDI_PNP_CONTEXT Context2,
IN ProviderPnPPowerComplete ProtocolCompletionHandler
);
TdiPnPPowerRequest ÇÔ¼ö´Â NIC°ú ¹ÙÀεùµÈ ƯÁ¤ Æ®·£½ºÆ÷Æ® »ó¿¡¼ Æ®·£½ºÆ÷Æ®¿¡¼ ¸ðµç Ŭ¶óÀÌ¾ðÆ®·Î Àü¿ø»óÅ º¯ÈÅ뺸¸¦ Àü´ÞÇÑ´Ù.
¸Å°³º¯¼ö
- DeviceName
- Æ®·£½ºÆ÷Æ®¿Í NICÀÇ ¹ÙÀεùÀ» ±¸ÇöÇÏ´Â Æ®·£½ºÆ÷Æ® »ý¼º ÀåÄ¡ °´Ã¼¸¦ È®ÀÎÇÏ´Â ¹öÆÛÈµÈ È£ÃâÀÚ Á¦°ø À¯´ÏÄÚµå ¹®ÀÚ¿À» °¡¸®Å²´Ù. Æ®·£½ºÆ÷Æ®°¡ TdiRegisterDeviceObject ÇÔ¼ö¸¦ È£ÃâÇßÀ» ¶§ ÀÌ À̸§À» »ç¿ëÇÏ¿© TDI¸¦ °¡Áö°í Àü¿¡ ÀåÄ¡ °´Ã¼¸¦ µî·ÏÇß´Ù.
- PowerEvent
- Æ®·£½ºÆ÷Æ® ½ºÅÿ¡¼ ÃÖÇÏÀ§ µå¶óÀ̹ö ȤÀº Æ®·£½ºÆ÷Æ®ÀÇ ProtocolPnPEvent ÇÔ¼ö¿¡ ´ëÇÑ Àü¿ø»óÅ À̺¥Æ®¸¦ ÀεðÄÉÀÌÆ®ÇÒ ¶§ NDIS¿¡ ÀÇÇØ¼ Á¦°øµÈ NET_PNP_EVENT ±¸Á¶Ã¼¸¦ °¡¸®Å²´Ù. ÀÌ ±¸Á¶Ã¼ÀÇ NetEvent ¸â¹ö´Â ´ÙÀ½ÀÇ NDIS Á¤ÀÇ NET_PNP_EVENT_CODE °ªÁß¿¡ Çϳª·Î ¼³Á¤µÈ´Ù:
- NetEventSetPower
- NetEventQueryPower
- NetEventQueryRemoveDevice
- NetEventCancelRemoveDevice
- Context1
- ÀÌ Å¸ÀÔÀÇ Àü¿ø»óÅ ÀεðÄÉÀ̼ǰú ¿¬°üµÈ Æ®·£½ºÆ÷Æ® °áÁ¤ ÄÁÅØ½ºÆ®¸¦ °¡¸®Å²´Ù. ÀÌ Æ®·£½ºÆ÷Æ® Á¦°ø ÄÁÅØ½ºÆ® Á¤º¸´Â ¿ø·¡ ÇÁ·ÎÅäÄÝ Æ¯Á¤ÀÌ´Ù. ±×¸®°í ÀεðÄÉÀÌÆ®¸¦ ¾î¶»°Ô ÇØ¼®ÇÏ°í ´Ù·ç´Â Áö¿¡ ´ëÇÑ ÈùÆ®¸¦ Ŭ¶óÀÌ¾ðÆ®¿¡°Ô Á¦°øÇÏ´Â °æÇâÀÌ ÀÖ´Ù.
¿¹¸¦µé¾î TCP/IP´Â ÀÌ Å뺸ÀÇ ÄÁÅØ½ºÆ®¿Í ¿¬°üµÈ ÁÖ¼ÒÀÇ ¸®½ºÆ®·Î Æ÷ÀÎÅ͸¦ Àü´ÞÇÑ´Ù.
- Context2
- ÀÌ Å¸ÀÔÀÇ Àü¿ø»óÅ ÀεðÄÉÀ̼ǰú ¿¬°üµÈ Æ®·£½ºÆ÷Æ® °áÁ¤ ÄÁÅØ½ºÆ®¸¦ °¡¸®Å²´Ù.
¿¹¸¦µé¾î TCP/IP´Â ¹ß»ýµÇ´Â ÀÌ Å뺸¸¦ À§Çؼ ¹°¸® ÀåÄ¡¸¦ ±¸ÇöÇÏ´Â PDO·Î Æ÷ÀÎÅ͸¦ Àü´ÞÇÑ´Ù.
- ProtocolCompletionHandler
- ¾î¶² Ŭ¶óÀÌ¾ðÆ®°¡ ÀÌ Å뺸¸¦ ºñµ¿±âÀûÀ¸·Î ó¸®ÇÏ°í ³ªÁß¿¡ ÀÌ ÀεðÄÉÀ̼ÇÀ» À§Çؼ STATUS_SUCCESS°¡ ¾Æ´Ñ ´Ù¸¥ ¹«¾ùÀΰ¡¸¦ ¸®ÅÏÇÑ´Ù¸é TDI°¡ È£ÃâÇÏ´Â Æ®·£½ºÆ÷Æ® Á¦°ø ¿Ï·á ·çƾÀÇ ¿£Æ®¸® Æ÷ÀÎÆ®¸¦ ¼¼úÇÑ´Ù. ÀÌ TDI Á¤ÀÇ Çڵ鷯´Â ´ÙÀ½°ú °°ÀÌ ¼±¾ðµÉ ¼ö ÀÖ´Ù:
VOID
MyPnPPowerCompletionCallback(
IN PNET_PNP_EVENT NetEvent,
IN NTSTATUS FinalStatus
);
¸®Åϰª
¸ðµç Ŭ¶óÀÌ¾ðÆ®°¡ ÀÌ Å뺸¸¦ µ¿±âÀûÀ¸·Î ó¸®Çϰí Àü¿ø»óÅ º¯ÈÀÇ ½ÂÀÎÀ» ÀεðÄÉÀÌÆ®Çϱâ À§Çؼ STATUS_SUCCESS¸¦ ¸®ÅÏÇÑ´Ù¸é TdiPnPPowerRequest ÇÔ¼ö´Â STATUS_SUCCESS¸¦ ¸®ÅÏÇÑ´Ù. ±×·¸Áö ¾ÊÀ¸¸é ´ÙÀ½Áß Çϳª¸¦ ¸®ÅÏÇÒ ¼ö ÀÖ´Ù:
- STATUS_PENDING
- Àû¾îµµ ÇϳªÀÇ Å¬¶óÀÌ¾ðÆ®°¡ ºñµ¿±âÀûÀ¸·Î ÀÌ Å뺸¸¦ ó¸®ÇÒ °ÍÀÌ´Ù. ¸ðµç Ŭ¶óÀÌ¾ðÆ®°¡ ÀÌ Å뺸ÀÇ Ã³¸®¸¦ ¿Ï·áÇßÀ» ¶§ TDI´Â ProtocolCompletionHandler¿¡¼ Æ®·£½ºÆ÷Æ® Á¦°ø ·çƾÀ» È£ÃâÇÑ´Ù.
- STATUS_INSUFFICIENT_RESOURCES
- ÇöÀç TDI´Â Àü¿ø»óÅ º¯È¸¦ ¸ðµç Ŭ¶óÀÌ¾ðÆ®¿¡°Ô ¾Ë¸®±â À§ÇØ¼ÃæºÐÇÑ ÀÚ¿øÀ» ÇÒ´çÇÒ ¼ö ¾ø´Ù. ½Ã½ºÅÛ ÀÚ¿øÀÇ »ç¿ëÀÌ µ¿ÀûÀ̱⠶§¹®¿¡ °°Àº Æ®·£½ºÆ÷Æ®¿¡¼ÀÇ ¼øÂ÷ÀûÀΠȣÃâÀº ¼º°øÇÒ ¼ö ÀÖ´Ù.
ÁÖ¼®
NDIS°¡ Æ®·£½ºÆ÷Æ® ½ºÅà ȤÀº Æ®·£½ºÆ÷Æ® µå¶óÀ̹öÀÇ lower edge¿¡¼ ProtocolPnPEvent ÇÔ¼ö·ÎÀÇ È£ÃâÀ» °¡Áö°í Æ®·£½ºÆ÷Æ®¿¡°Ô Àü¿ø»óÅ º¯È À̺¥Æ®¸¦ ¾Ë¸± ¶§ Æ®·£½ºÆ÷Æ®´Â TdiPnPPowerRequest ÇÔ¼ö·ÎÀÇ È£ÃâÀ» °¡Áö°í ±×µéÀÇ ÇöÀç ³×Æ®¿÷ ¿¬»ê¿¡ ¿µÇâÀ» ¹ÌÄ¡´Â Àü¿ø»óÅ º¯È¸¦ »óÀ§ ·¹º§ Ŭ¶óÀÌ¾ðÆ®¿¡°Ô ¾Ë¸± Ã¥ÀÓÀÌ ÀÖ´Ù.
Æ®·£½ºÆ÷Æ®´Â ƯÈ÷ NetEventReconfigure°ú NetEventBindingList¿Í °°Àº NDIS Á¤ÀÇ Å¸ÀÔó·³ ¾î¶² PnP ŸÀÔÀÇ À̺¥Æ®¸¦ °¡Áö°í ÀÌ È£ÃâÀ» ÇÏÁö ¾Ê´Â´Ù´Â °ÍÀ» ±â¾ïÇØ¶ó. ´ë½Å¿¡ NDIS´Â ÀÌ Å뺸¸¦ °¡Áö°í TDI¸¦ È£ÃâÇÏ°í ±³´ë·Î TDI´Â ¸ðµç TDI Ŭ¶óÀ̾ðÆ®ÀÇ µî·ÏµÈ ClientPnPBindingChange ÇÔ¼ö¸¦ È£ÃâÇÑ´Ù. °¢°¢ÀÇ Å¬¶óÀÌ¾ðÆ®¿¡ ÀÇÇØ¼ ¸®ÅÏµÈ »óÅ¿¡ ÀÇÁ¸ÇÏ¿© NDIS´Â ±×·¯ÇÑ PnP À̺¥Æ® Å뺸¿¡ ÀÇÇØ¼ ¿µÇâÀ» ¹ÞÀº Æ®·£½ºÆ÷Æ®ÀÇ ProtocolBindAdapter³ª ProtocolUnbindAdapter ÇÔ¼ö¸¦ È£ÃâÇÑ´Ù.
±×·¯ÇÑ Æ®·£½ºÆ÷Æ®´Â TDI¸¦ ÅëÇØ¼ NDIS·ÎºÎÅÍ µî·ÏµÈ Ŭ¶óÀÌ¾ðÆ®±îÁö ¼øÂ÷ÀûÀÎ Å뺸·Î½á ´Ù¸¥ TdiXxx ·çƾÀ» È£ÃâÇÑ´Ù. ¿¹¸¦µé¾î Æ®·£½ºÆ÷Æ®´Â Connections Æú´õ¾È¿¡ ¸¶Áö¸· »ç¿ëÀÚ¿¡ ÀÇÇÑ º¯È¸¦ °¡Áö°í ¹ß»ýÇÏ´Â NetEventBindingList ŸÀÔÀÇ ¼øÂ÷ÀûÀÎ Å뺸·Î½á TdiRegisterDeviceObject¿Í TdiRegisterNetAddress ÇÔ¼ö¸¦ È£ÃâÇÑ´Ù.
Æ®·£½ºÆ÷Æ®´Â Æ®·£½ºÆ÷Æ® ½ºÅÃÀÇ lower edge¿¡¼ NDIS·ÎºÎÅÍ ProtocolBindAdapter ÇÔ¼ö·Î NetEventBindsComplete ŸÀÔÀÇ ¼øÂ÷ÀûÀÎ Å뺸·Î½á ½Ã½ºÅÛÀ» ¼³Á¤ÇÏ´Â µ¿¾È¿¡ TdiProviderReady ÇÔ¼ö¸¦ È£ÃâÇÑ´Ù.
TdiPnPPowerRequest ÇÔ¼öÀÇ È£ÃâÀÚ´Â IRQL < DISPATCH_LEVEL¿¡¼ ½ÇÇàµÇ¾î¾ßÇÑ´Ù.
|