NdisRequest

VOID

  NdisRequest(

    OUT PNDIS_STATUS  Status,

    IN NDIS_HANDLE  NdisBindingHandle,

    IN PNDIS_REQUEST  NdisRequest

    );

NdisRequest´Â NICÀÇ »óųª ´É·ÂÀ» Äõ¸®Çϰųª NICÀÇ »óŸ¦ ¼³Á¤Çϱâ À§ÇØ ¾Æ·¡ °èÃþ µå¶óÀ̹ö¿¡ ¿ä±¸¸¦ Æ÷¿öµåÇÑ´Ù.

¸Å°³º¯¼ö

Status
ÀÌ ÇÔ¼ö·ÎºÎÅÍ ¸®ÅϵǴ °ªÀ» ¼³Á¤Çϴ ȣÃâÀÚ Á¦°ø º¯¼öÀÌ´Ù. ¾Æ·¡ °èÃþ µå¶óÀ̹ö´Â NDIS_STATUS_XXX·Î ¸®ÅϵǾîÁö´Â °ÍÀ» °áÁ¤ÇÑ´Ù. Ç×»ó ´ÙÀ½°ú °°Àº °ªµéÀ» °¡Áø´Ù.

NDIS_STATUS_SUCCESS
¿ä±¸µÈ ¿¬»êÀÌ ¼º°øÀûÀ¸·Î ¸¶ÃÆ´Ù.

NDIS_STATUS_INVALID_OID
NdisRequest¿¡¼­ NDIS_REQUEST±¸Á¶ÀÇ ¹öÆÛÀÇ Oid ¸â¹ö³»¿¡ ÁöÁ¤µÈ OID_XXX Äڵ尡 À¯È¿ÇÏÁö ¾Ê°Å³ª ¾Æ·§°èÃþ µå¶óÀ̹ö¿¡¼­ Áö¿øÇÏÁö ¾Ê´Â´Ù.

NDIS_STATUS_INVALID_LENGTH ȤÀº NDIS_STATUS_BUFFER_TOO_SHORT
NdisRequest¿¡¼­ NDIS_REQUEST±¸Á¶ÀÇ ¹öÆÛÀÇ InformationBufferLength ¸â¹ö¿¡¼­ ÁöÁ¤µÈ ÁÖ¾îÁø OID_XXX Äڵ带 À§ÇØ ÇÊ¿äÇÑ °Í°ú ¸ÅÄ¡µÇÁö ¾Ê´Â´Ù. ¸¸¾à Á¤º¸ ¹öÆÛ°¡ ³Ê¹« ÀÛÀ¸¸éÀº, BytesNeeded ¸â¹ö´Â NdisRequest·ÎºÎÅÍ ¸®ÅÏµÈ InformationBufferLength¸¦ À§ÇÑ ¿Ã¹Ù¸¥ °ªÀ» Æ÷ÇÔÇÑ´Ù.

NDIS_STATUS_INVALID_DATA
ÁÖ¾îÁø NDIS_REQUEST ±¸Á¶Ã¼³»¿¡ InformationBuffer¿¡¼­ Á¦°øµÈ µ¥ÀÌÅͰ¡ ÁÖ¾îÁø OID_XXX Äڵ带 À§ÇØ À¯È¿ÇÏÁö ¾Ê´Ù.

NDIS_STATUS_NOT_SUPPORTED ȤÀº NDIS_STATUS_NOT_RECOGNIZED
¾Æ·¡ µå¶óÀ̹ö´Â ¿ä±¸µÈ ¿¬»êÀ» Áö¿øÇÏÁö ¾Ê´Â´Ù.

NDIS_STATUS_RESOURCES
¿ä±¸°¡ ÀÚ¿øºÎÁ·À¸·Î ÀÎÇØ¼­ ¸¸Á·µÇÁö ¾ÊÀ» ¼ö ÀÖ´Ù. Ç×»ó, ÀÌ·¯ÇÑ ¸®ÅÏ °ªÀº ¸Þ¸ð¸®¸¦ ÇÒ´çÇÏ´Â ½Ãµµ°¡ ¼º°øÀûÀÎ ¸øÇ߰ųª, °°Àº ¿ä±¸°¡, ÈÄ¿¡ Á¦ÃâµÈ, °°Àº ÀÌÀ¯·Î ½ÇÆÐÇß´Ù´Â °ÍÀ» ¹Ýµå½Ã Áö½ÃÇÏÁö´Â ¾Ê´Â´Ù.

NDIS_STATUS_NOT_ACCEPTED
¾Æ·¡ °èÃþ µå¶óÀ̹ö°¡ Ç×»ó NIC¿¡ ¼³Á¤À¸·Î ¿ä±¸µÈ ¿¬»êÀ» ½ÃµµÇßÁö¸¸Àº ³×Æ®¿öÅ© Ä«µå¿¡ ÀÇÇØ ½ÇÆÐÇÑ´Ù. ¿¹¸¦ µé¾î ³Ê¹« ¸¹Àº ¸ÖƼ ij½ºÆ® ÁÖ¼ÒµéÀÇ ¼³Á¤ ½Ãµµ°¡ ÀÌ·¯ÇÑ ¸®ÅϰªÀ» ¾ß±âÇÑ´Ù.

NDIS_STATUS_CLOSING ȤÀº NDIS_STATUS_CLOSING_INDICATING
¾Æ·¡ °èÃþ µå¶óÀ̹ö°¡ ´ÝÈûÀÌ ÁøÇàµÆ±â ¶§¹®¿¡ ¿ä±¸µÈ ¿¬»êÀ» ½ÇÆÐÇß´Ù.

NDIS_STATUS_RESET_IN_PROGRESS
¾Æ·¡ °èÃþ µå¶óÀ̹ö°¡ ÇöÀç ³×Æ®¿öÅ© Ä«µå¸¦ ¸®¼ÂÆÃÇϱ⠶§¹®¿¡ ÀÌ ½Ã±â¿¡ ¿ä±¸¸¦ ¸¸Á·½Ãų ¼ö ¾ø´Ù. È£ÃâÀÚÀÇ ProtocolStatusÇÔ¼ö´Â ¸®¼ÂÀÌ ÁøÇàÁßÀ̶ó°í Áö½ÃÇϱâ À§ÇØ NDIS_STATUS_RESET_START·Î È£ÃâµÇ¾îÁö°Å³ª µÉ °ÍÀÌ´Ù. ÀÌ ¸®ÅÏ °ªÀº °°Àº ¿ä±¸°¡, ÈÄ¿¡ Á¦ÃâµÈ, °°Àº ÀÌÀ¯·Î ½ÇÆÐÇÒ °ÍÀ̶ó°í Áö½ÃÇÒ ÇÊ¿ä´Â ¾ø´Ù.

NDIS_STATUS_FAILURE
ÀÌ °ªÀº Ç×»ó ºñƯÁ¤ µðÆúÆ®°¡ ¾Æ´Ï´Ù. ¸¹Àº ƯÁ¤ NDIS_STATUS_XXXÀÇ ¾Æ¹«°Íµµ ¾Æ·¡ °èÃþ µå¶óÀ̹ö°¡ ¿ä±¸¸¦ ½ÇÆÐÇÒ °ÍÀ̶ó°í ÇÒ ¶§ ¸®ÅϵǾîÁø´Ù.

NdisBindingHandle
ŸÄÏ NICȤÀº È£ÃâÀÚ¿Í ¹Ù¿îµåµÈ ´ÙÀ½ ³·Àº µå¶óÀ̹öÀÇ °¡»ó ¾î´ðÅ͸¦ ÁöÁ¤ÇÏ´Â NdisOpenAdapter¿¡ ÀÇÇØ ¸®ÅÏµÈ ÇÚµéÀ» ÁöÁ¤ÇÑ´Ù.

NdisRequest
Äõ¸®³ª ¼ÂÀ» À§ÇÏ¿© ÁÖ¾îÁø OID_XXX ÄÚµå·Î ¿ä±¸µÈ ¿¬»êÀ» ÁöÁ¤ÇÏ´Â ¹öÆÛÈ­µÈ ±¸Á¶Ã¼¸¦ °¡¸®Å²´Ù.

ÁÖ¼®

ÇÁ·ÎÅäÄÝ µå¶óÀ̹ö´Â ¿ä±¸µÉ ¿¬»êÀÇ OID_XXX¿Í °ü·ÃµÈ Á¤º¸ ¹öÆÛ¸¦ ÃæºÐÇÑ ¸Þ¸ð¸®·Î ÇÒ´çÇØ¾ß ÇÑ´Ù. µå¶óÀ̹ö´Â ¶ÇÇÑ NdisRequest¸¦ ¿äÃâÇϱâ Àü¿¡ NdisRequest¿¡ ¹öÆÛ¸¦ ÇÒ´çÇÏ°í ¼³Á¤ÇØ¾ß ÇÑ´Ù. ¾çÂÊ ¹öÆÛµéÀº ¾Æ·¡ °èÃþ µå¶óÀ̹ö°¡ ¿ä±¸¸¦ ó¸®ÇÏ´Â µ¿¾È »ó½ÂµÈ IRQL¿¡¼­ ÀÛµ¿Çϱ⠶§¹®¿¡ ºñÆäÀÌÁö Ç®·ÎºÎÅÍ ÇÒ´çµÇ¾î¾ß ÇÑ´Ù.

ÀÎÅ͹̵ð¾ù NDIS µå¶óÀ̹ö À§¿¡ ÃþÈ­µÈ È£ÃâÀÚ¸¦ À§ÇÏ¿©, NdisRequest´Â ¿ä±¸¸¦ ´ÙÀ½ ³·Àº µå¶óÀ̹ö·Î º¸³½´Ù. ±×°ÍÀº È£ÃâÀÚÀÇ °áÁ¤µÈ ¹æ½ÄÀ¸·Î ƯÁ¤ ±â´ÉÀ» ´Ù·ç¶ó°í µå¶óÀ̹ö¿¡°Ô Áö½ÃÇϰųª ÀÚ½ÅÀÇ ´É·Â¿¡ ´ëÇÑ Á¤º¸¸¦ ¸®ÅÏÇÑ´Ù. ´ÙÀ½ ³·Àº µå¶óÀ̹ö°¡ NDIS ÀÎÅ͹̵ð¾ù µå¶óÀ̹öÀ̸éÀº, ¿ø·¡ ´õ ³ôÀº ·¹º§ÀÇ ÇÁ·ÎÅäÄÝ¿¡ ÀÇÇØ Á¦ÃâµÈ ¿ä±¸¸¦ ¿Ï¼ºÇϱâ Àü¿¡ OIDƯÁ¤ ¿ä±¸¸¦ °¡Áø NdisRequest¸¦ È£ÃâÇÒ ¼ö ÀÖ´Ù.

Status¿¡ ¸®ÅÏµÈ ¸î¸î ¿¡·¯µéÀº ȸº¹ÇÒ ¼ö ÀÖ°í ´ÙÀ½°ú °°Àº °ªÀ» °¡Áø´Ù.
NDIS_STATUS_INVALID_OID
NDIS_STATUS_INVALID_LENGTH
NDIS_BUFFER_TOO_SHORT
NDIS_STATUS_INVALID_DATA
NDIS_STATUS_RESOURCES
NDIS_STATUS_RESET_IN_PROGRESS

Áï µå¶óÀ̹ö´Â Àû´çÇÏ°Ô NdisRequestÀÇ ÆÐŶÀ» ¼öÁ¤ÇÏ¿© OID_XXX ÄÚµå¿Í InformationBufferÀÇ ¹öÆÛÀÇ ³»¿ë°¡ Å©±â¸¦ ¿Ã¹Ù¸£°Ô Çϰí NdisRequest·Î ¿ä±¸ ÆÐŶÀ» ´Ù½Ã Á¦ÃâÇÑ´Ù. °°Àº ÆÐŶÀÌ ¸¸¾à ¿ø·¡ È£ÃâÀÌ ÁøÇà¿¡¼­ ¸®¼ÂÀ» °¡¸®Å°°Å³ª ÀϽÃÀûÀ¸·Î ¸®¼Ò½º ºÎÁ·ÀÌ ½ÇÇàµÇ¾îÁö´Â ¿ä±¸¸¦ ¹æÇØÇÑ´Ù¸éÀº NdisRequest¿¡ ´ëÇÑ ÀçÁ¦Ãâ·Î ¸¸Á·µÉ °ÍÀÌ´Ù.

NDIS ¶óÀ̺귯¸®´Â ¾Æ·¡ ¹Ì´ÏÆ÷Æ® µå¶óÀ̹ö¸¦ À§ÇÏ¿© ¹ÙÀεùÀ» À¯ÁöÇÑ´Ù. NDIS´Â ¸¸¾à ÁÖ¾îÁø OID°¡ ½Ã½ºÅÛÀÌ ÇÊÅÍ ¶óÀ̺귯¸®¸¦ Á¦°øÇÏ´Â °ÍÀ» À§ÇØ ½Ã½ºÅÛ Á¤ÀÇ ¹Ìµð¾ö ŸÀÔ¿¡ °ü·ÃµÇ¾îÁø´Ù¸éÀº ¹ÙÀεùƯÁ¤ Äõ¸®¸¦ À§ÇÑ Á¤º¸¸¦ ¸®ÅÏÇÒ ¼ö ÀÖ´Ù.

ÀϹÝÀûÀÌ°í ¹Ìµð¾î ƯÁ¤ OID¿¡ ´ëÇÑ ´õ ¸¹Àº Á¤º¸¿Í ±×µéÀÇ °´°üÀûÀ¸·Î °ü·ÃµÈ Á¤º¸¿¡ ´ëÇÑ ´õ ¸¹Àº Á¤º¸´Â Chapter 5¸¦ º¸¶ó.

NdisRequestÀÇ È£ÃâÀÚ´Â IRQL <= DISPATCH_LEVEL¿¡¼­ ½ÇÇàµÇ¾îÁú ¼ö ÀÖ´Ù.