TdiProviderReady

NTSTATUS
   TdiProviderReady(
       IN HANDLE ProviderHandle
       );

TdiProviderReady ÇÔ¼ö´Â ÇϳªÀÌ»óÀÇ ÇϺΠNIC°ú ¼º¸³µÈ ¹ÙÀεùÀ» °¡Áö´Â ƯÁ¤ Æ®·£½ºÆ÷Æ®ÀÇ TDI Ŭ¶óÀÌ¾ðÆ®¸¦ ÀνÄÇÑ´Ù. ±×¸®°í ³×Æ®¿÷À¸·Î µ¥ÀÌŸ¸¦ º¸³»°Å³ª ¹ÞÀ» ¼ö ÀÖ´Ù.

¸Å°³º¯¼ö

ProviderHandle
Æ®·£½ºÆ÷Æ®°¡ TdiRegisterProvider ÇÔ¼ö·ÎºÎÅÍ ¾òÀº ÇÚµéÀ» ¼­¼úÇÑ´Ù.

¸®Åϰª

³×Æ®¿÷À¸·Î µ¥ÀÌŸ¸¦ º¸³»±âÀ§ÇÑ ÇöÀçÀÇ ¸ðµç ¹ÙÀεù Ŭ¶óÀ̾ðÆ®ÀÇ Æ®·£½ºÆ÷Æ® Áغñ°¡ µÆÀ» ¶§ TdiProviderReady ÇÔ¼ö´Â STATUS_SUCCESS¸¦ ¸®ÅÏÇÑ´Ù. ±×·¸Áö ¾ÊÀ¸¸é STATUS_INSUFFICIENT_RESOURCES¸¦ ¸®ÅÏÇÒ ¼ö ÀÖ´Ù. (½Ã½ºÅÛ ÀÚ¿øÀÇ »ç¿ëÀÌ µ¿ÀûÀ̱⠶§¹®¿¡ °°Àº Æ®·£½ºÆ÷Æ®·ÎºÎÅÍÀÇ ¼øÂ÷ÀûÀΠȣÃâÀº ¼º°øÇÒ ¼ö ÀÖ´Ù.)

ÁÖ¼®

TDI Æ®·£½ºÆ÷Æ®´Â ´ÙÀ½ÀÇ ¸ðµç ¿¬»êÀ» ÇÏÀÚ¸¶ÀÚ TdiProviderReady ÇÔ¼ö¸¦ È£ÃâÇÑ´Ù:

  • Æ®·£½ºÆ÷Æ® ½ºÅÿ¡¼­ ÃÖÇÏÀ§ µå¶óÀ̹öÀÇ ProtocolBindAdapter ÇÔ¼ö°¡ ÇϳªÀÌ»óÀÇ ÇϺΠNDIS ¹Ì´ÏÆ÷Æ®¿ÍÀÇ ¹ÙÀεùÀ» ¼º°øÀûÀ¸·Î ¼º¸³Çؼ­ ÀÌ ¹Ì´ÏÆ÷Æ®ÀÇ NICÀº ÃʱâÈ­µÆ°í ³×Æ®¿÷À¸·Î µ¥ÀÌŸ¸¦ Àü¼ÛÇÒ ¼ö ÀÖ´Ù.
  • NDIS´Â NetEventBindsComplete ŸÀÔÀÇ ÀÔ·Â NET_PNP_EVENT¸¦ °¡Áö°í Æ®·£½ºÆ÷Æ® ½ºÅÃÀÇ ¹Ø¿¡¼­ ProtocolPnPEvent ÇÔ¼ö¸¦ È£ÃâÇß´Ù.
  • »õ·Ó°Ô ¼º¸³µÈ Æ®·£½ºÆ÷Æ®¿Í NICÀÇ ¹ÙÀεù¿¡¼­ ±×µéÀÌ ³×Æ®¿÷ Àü¼ÛÀ» Æ®·¢ÇÒ Çʿ䰡 ÀÖ´Â »óŰ¡ ¹«¾ùÀ̵çÁö Æ®·£½ºÆ÷Æ® ½ºÅþȿ¡ ¾î¶² ÀÎÅ͹̵ð¾ù µå¶óÀ̹ö°¡ ÇÒ´çµÇ°í ÃʱâÈ­µÇ¾ú´Ù.
  • ¶ÇÇÑ »õ·Ó°Ô ¼º¸³µÈ Æ®·£½ºÆ÷Æ®¿Í NICÀÇ ¹ÙÀεù¿¡¼­ Ŭ¶óÀ̾ðÆ®ÀÇ ³×Æ®¿÷ Àü¼ÛÀ» Æ®·¢ÇÒ Çʿ䰡 ÀÖ´Â »óŰ¡ ¹«¾ùÀ̵çÁö TDI Æ®·£½ºÆ÷Æ® µå¶óÀ̹ö°¡ ÇÒ´çµÇ°í ÃʱâÈ­µÇ¾ú´Ù. ¿¹¸¦µé¾î Æ®·£½ºÆ÷Æ®´Â °¢°¢ÀÇ ±×·¯ÇÑ ¹ÙÀεù¿¡¼­ Ŭ¶óÀ̾ðÆ®ÀÇ ³×Æ®¿÷ I/O ¿¬»êÀÇ Å¸°ÙÀ» ±¸ÇöÇϱâ À§Çؼ­ »ý¼ºµÈ ÀåÄ¡ °´Ã¼ÀÇ À̸§À» °¡Áö°í ÇѹøÀÌ»ó TdiRegisterDeviceObject ÇÔ¼ö¸¦ È£ÃâÇß´Ù. ¶ÇÇÑ Æ®·£½ºÆ÷Æ®´Â ¹æ±Ý ¼º¸³µÈ ¹ÙÀεù¿¡¼­ ÇѹøÀÌ»ó TdiRegisterNetAddress ÇÔ¼ö¸¦ È£ÃâÇß´Ù.
TdiProviderReady ÇÔ¼ö·ÎÀÇ Æ®·£½ºÆ÷Æ® È£ÃâÀº ´ÙÀ½ÀÇ ¸ðµÎ³ª Çϳª¸¦ ¿Ï¼ºÇÑ´Ù:

  • TDI´Â ÀÔ·Â PnPOpcode °ª TDI_PNP_OP_PROVIDERREADY¸¦ °¡Áö°í ÀÌ Æ®·£½ºÆ÷Æ®ÀÇ Å¬¶óÀÌ¾ðÆ®¿¡ ´ëÇÑ µî·ÏµÈ ClientPnPBindingChange ·çƾÀ» È£ÃâÇÑ´Ù. µû¶ó¼­ TDI´Â ÇϺÎÀÇ Æ®·£½ºÆ÷Æ® ½ºÅÃÀÌ »õ·Ó°Ô ¼º¸³µÈ Æ®·£½ºÆ÷Æ®¿Í NICÀÇ ¹ÙÀεùÀ» ÅëÇØ¼­ ³×Æ®¿÷À¸·Î µ¥ÀÌŸ¸¦ º¸³»°Å³ª ¹ÞÀ» Áغñ°¡ µÈ Ŭ¶óÀÌ¾ðÆ®¸¦ ÀνÄÇÑ´Ù.
  • ÀÌ ±â°è»ó¿¡¼­ ·¹Áö½ºÆ®¸®¾È¿¡ ÀúÀåµÈ ³×Æ®¿÷ ±¸¼º Á¤º¸¿¡ µû¶ó¼­ À̰ÍÀÌ TDI¿¡°Ô ÁÖ¾îÁø ¸¶Áö¸· Æ®·£½ºÆ÷Æ® Áغñ ÀεðÄÉÀ̼ÇÀÌ°í ¼º¸³µÈ ¸¶Áö¸· Æ®·£½ºÆ÷Æ®¿Í NICÀÇ ¹ÙÀεùÀ̶ó¸é TDI´Â ¸ðµç Æ®·£½ºÆ÷Æ®ÀÇ Å¬¶óÀÌ¾ðÆ®¿¡ ´ëÇØ¼­ µî·ÏµÈ ClientPnPBindingChange ·çƾÀ» È£ÃâÇÑ´Ù. °á±¹ TDI´Â ½Ã½ºÅÛ ÃʱâÈ­½Ã¿¡ ¹ÙÀεù ¿¬»êÀÌ NULL DeviceName Æ÷ÀÎÅÍ¿Í °ªÀÌ TDI_PNP_OP_NETREADYÀÎ PnPOpcode¸¦ °¡Áö°í °¢°¢ÀÇ µî·ÏµÈ ClientPnPBindingChange ·çƾÀ» È£ÃâÇϹǷνá ÇàÇØÁú ¶§ ¸ðµç µî·ÏµÈ Ŭ¶óÀÌ¾ðÆ®¸¦ ÀνÄÇÑ´Ù.
IoCreateDevice ÇÔ¼ö¸¦ °¡Áö°í ÀåÄ¡ °´Ã¼¸¦ »ý¼ºÇÏ´Â ¹æ¹ý¿¡ ´ëÇÑ ´õ ¸¹Àº Á¤º¸¸¦ À§Çؼ­ Ä¿³Î ¸ðµå µå¶óÀ̹ö ·¹ÆÛ·±½º¸¦ ºÁ¶ó.

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