9.2 TAPI Á¤º¸ ¿äû ¼³Á¤Çϱâ

WAN ¹Ì´ÏÆ÷Æ®µéÀº ¿Ï¼º »óź¸´Ù´Â ¼³Á¤ ¿äûÀ» À§Çؼ­ ¾î¶°ÇÑ Á¤º¸µµ ¸®ÅÏÇÏÁö ¾Ê´Â´Ù. ¸ðµç OID-ƯÁ¤ ±¸Á¶Ã¼µéÀº ÇÁ·ÎÅäÄÝ µå¶óÀ̹ö¿¡ ÀÇÇØ¼­ Á¦°øµÇ°í, ±×µéÀÇ ¸â¹öµéÀº ¾Æ·¡ÀÇ WAN NIC ¹Ì´ÏÆ÷Æ®¿¡ Àбâ-Àü¿ëÀÌ´Ù.

OID_TAPI_ANSWER

ÀÌ OID ´Â Á¦°ø¿¡¼­(on offer) ÁöÁ¤µÈ È£Ãâ¿¡ ÀÀ´äÇÒ °ÍÀ» ¿äûÇÑ´Ù. Ãß°¡ÀûÀ¸·Î ±×°ÍÀº ¹Ì´ÏÆ÷Æ®°¡ È£Ãâ ÆÄÆ¼¿¡°Ô ÁöÁ¤µÈ »ç¿ëÀÚ-to-»ç¿ëÀÚ Á¤º¸¸¦ º¸³¾°ÍÀ» ¿äûÇÑ´Ù.

ÀÌ ¿äû¿¡ ´ëÇÑ Áö¿øÀº Àǹ«ÀûÀÌ´Ù.

OID_TAPI_ANSWER ¿äûÀº ¾Æ·¡¿¡ Á¤ÀÇµÈ NDIS_TAPI_ANSWER ±¸Á¶Ã¼¸¦ »ç¿ëÇÑ´Ù.:


typedef struct _NDIS_TAPI_ANSWER { 

    IN ULONG      ulRequestID; 

    IN HDRV_CALL  hdCall; 

    IN ULONG      ulUserUserInfoSize; 

    IN UCHAR      UserUserInfo[1]; 

} NDIS_TAPI_ANSWER, *PNDIS_TAPI_ANSWER; 

ÀÌ ±¸Á¶Ã¼ÀÇ ¸â¹öµéÀº ¾Æ·¡ Á¤º¸¸¦ Æ÷ÇÔÇÑ´Ù.:

ulRequestID
¿¹¾àµÊ.

hdCall
ÀÀ´äµÉ È£Ãâ¿¡ ´ëÇÑ ¹Ì´ÏÆ÷Æ®ÀÇ ÇÚµéÀ» ÁöÁ¤ÇÑ´Ù. µå¶óÀ̹ö´Â ±×°ÍÀÌ LINE_EVENT_NEWCALL ¾Ë¸²À¸·Î NdisMIndicateStatus ¸¦ È£ÃâÇßÀ» ¶§ ÀÌ ÇÚµéÀ» ¼³Á¤ÇÑ´Ù.

ulUserUserInfoSize
UserUserInfo ¿¡ ÀÖ´Â »ç¿ëÀÚ-to-»ç¿ëÀÚ Á¤º¸ÀÇ ¹ÙÀÌÆ® Å©±â¸¦ ÁöÁ¤ÇÑ´Ù. ¸¸¾à ÀÌ ¸â¹ö°¡ 0À̸é, UserUserInfo ´Â ¹«½ÃµÉ¼ö ÀÖ´Ù.

UserUserInfo

È£Ãâ ¼ö¶ôÀÇ ºÎºÐÀ¸·Î½á ¸®¸ðÆ® ÆÄƼ¿¡°Ô º¸³»Áú »ç¿ëÀÚ-to-»ç¿ëÀÚ Á¤º¸¸¦ Æ÷ÇÔÇÏ´Â ½ºÆ®¸µÀ» ÁöÁ¤ÇÑ´Ù. »ç¿ëÀÚ-to-»ç¿ëÀÚ Á¤º¸´Â ¸¸¾à ¾Æ·¡ÀÇ ³×Æ®¿öÅ©¿¡ ÀÇÇØ¼­ Áö¿øµÈ´Ù¸é º¸³»Áø´Ù.(OID_TAPI_GET_DEV_CAPS¸¦ ºÁ¶ó.)

MiniportSetInformation ÇÔ¼ö´Â ¾Æ·¡ÁßÀÇ Çϳª¸¦ ¸®ÅÏÇÒ ¼ö ÀÖ´Ù.;
NDIS_STATUS_SUCCESS
NDIS_STATUS_PENDING
NDIS_STATUS_TAPI_INVALCALLHANDLE
NDIS_STATUS_TAPI_INVALCALLSTATE
NDIS_STATUS_TAPI_RESOURCEUNAVAIL
NDIS_STATUS_TAPI_USERUSERINFOTOOBIG
NDIS_STATUS_FAILURE

OID_TAPI_ANSWER ¿äûÀÇ ¼º°øÀûÀÎ ¿Ï¼º¶§, ¹Ì´ÏÆ÷Æ®´Â OID_TAPI_GET_ID ¿äû¿¡ ´ëÇÑ ÀÀ´äÀ» ÁغñµÇ¾î¾ß ÇÑ´Ù.

óÀ½ÀÇ ¾îÇø®ÄÉÀ̼ÇÀº ½ÇÁ¦·Î µ¥ÀÌÅ͸¦ ¾²±âÀü¿¡ LINECALLSTATE_CONNECTED ¾Ë¸²À» ±â´Ù·Á¾ßÇÑ´Ù.

OID_TAPI_CLOSE

ÀÌ OID ´Â ÁöÁ¤µÈ ¿ÀÇ ¶óÀÎ ÀåÄ¡¸¦ ´ÝÀ» °ÍÀ» ¹Ì´ÏÆ÷Æ®¿¡°Ô ¿äûÇÑ´Ù.

ÀÌ ¿äû¿¡ ´ëÇÑ Áö¿øÀº Àǹ«ÀûÀÌ´Ù.

ÀÌ ¿äûÀº ¾Æ·¡¿¡ Á¤ÀÇµÈ NDIS_TAPI_CLOSE ±¸Á¶Ã¼¸¦ »ç¿ëÇÑ´Ù.:


typedef struct _NDIS_TAPI_CLOSE { 

    IN ULONG      ulRequestID; 

    IN HDRV_LINE  hdLine; 

} NDIS_TAPI_CLOSE, *PNDIS_TAPI_CLOSE; 

ÀÌ ±¸Á¶Ã¼ÀÇ ¸â¹öµéÀº ¾Æ·¡ Á¤º¸¸¦ Æ÷ÇÔÇÑ´Ù.:

ulRequestID
¿¹¾àµÊ.

hdLine
´ÝÇôÁú ¶óÀο¡ ´ëÇÑ ¹Ì´ÏÆ÷Æ®ÀÇ ÇÚµéÀ» ÁöÁ¤ÇÑ´Ù. ¶óÀÎÀÌ ¼º°øÀûÀ¸·Î ´ÝÇôÁøÈÄ¿¡, ÀÌ ÇÚµéÀº ´õÀÌ»ó À¯È¿ÇÏÁö ¾Ê´Ù.

MiniportSetInformation ÇÔ¼ö´Â ¾Æ·¡ÁßÀÇ Çϳª¸¦ ¸®ÅÏÇÒ ¼ö ÀÖ´Ù.;
NDIS_STATUS_SUCCESS
NDIS_STATUS_PENDING

OID_TAPI_CLOSE_CALL

ÀÌ OID ´Â È£Ãâ»ó¿¡ ÀÖ´Â ¸ðµç ³ª°¡´Â ºñµ¿±â ¿äûµéÀ» ¿Ï·áÇϰí Á¾·áÇÑ ÈÄ¿¡ ÁöÁ¤µÈ È£ÃâÀ» ´ÝÀ»°ÍÀ» ¿äûÇÑ´Ù.

ÀÌ ¿äû¿¡ ´ëÇÑ Áö¿øÀº Àǹ«ÀûÀÌ´Ù.

ÀÌ ¿äûÀº ¾Æ·¡¿¡ Á¤ÀÇµÈ NDIS_TAPI_CLOSE_CALL ±¸Á¶Ã¼¸¦ »ç¿ëÇÑ´Ù.:


typedef struct _NDIS_TAPI_CLOSE_CALL { 

    IN ULONG      ulRequestID; 

    IN HDRV_CALL  hdCall; 

} NDIS_TAPI_CLOSE_CALL, *PNDIS_TAPI_CLOSE_CALL; 

ÀÌ ±¸Á¶Ã¼ÀÇ ¸â¹öµéÀº ¾Æ·¡ Á¤º¸¸¦ Æ÷ÇÔÇÑ´Ù.:

ulRequestID
¿¹¾àµÊ.

hdCall
´ÝÇôÁú È£Ãâ¿¡ ´ëÇÑ ¹Ì´ÏÆ÷Æ®ÀÇ ÇÚµéÀ» ÁöÁ¤ÇÑ´Ù. È£ÃâÀÌ ¼º°øÀûÀ¸·Î ´ÝÇôÁøÈÄ¿¡, ÀÌ ÇÚµéÀº ´õÀÌ»ó À¯È¿ÇÏÁö ¾Ê´Ù.

MiniportSetInformation ÇÔ¼ö´Â ¾Æ·¡ÁßÀÇ Çϳª¸¦ ¸®ÅÏÇÒ ¼ö ÀÖ´Ù.;
NDIS_STATUS_SUCCESS
NDIS_STATUS_PENDING

OID_TAPI_CONDITIONAL_MEDIA_DETECTION

Ŭ¶óÀÌ¾ðÆ® ¾îÇø®ÄÉÀ̼ÇÀÌ ¶óÀεéÀÌ ¿ä±¸µÈ ¹Ìµð¾î ¸ðµå(µé)°ú È£Ãâ ÆÄ¶ó¹ÌÅ͵éÀ» Áö¿øÇÏ´Â °ÍÀ» ã±â À§Çؼ­ ½ºÄµ(scaned)µÉ°ÍÀ» ¿äûÇϱâ À§Çؼ­ lineOpen ÇÔ¼ö¿¡ ÀÖ´Â dwDeviceID ·Î½á LINEMAPPER ¸¦ »ç¿ëÇÒ ¶§¸¶´Ù, NDISTAPI ´Â WAN NIC ¹Ì´ÏÆ÷Æ®¿¡°Ô ¾Æ·¡·Î ±×°ÍÀ» Åë°ú½ÃŰ´Â NDISWAN ¿¡ ´ëÇÑ OID ¿äûÀ» ¸¸µç´Ù.

NDISTAPI ½ºÄµµéÀº ±×°ÍÀÌ µ¿½Ã¿¡ ¿äûµÈ ¹Ìµð¾î ¸ðµåµéÀÇ ¸ðµç °Í¿¡ ´ëÇØ¼­ ¸ð´ÏÅÍÇÒ ¼ö ÀÖ´Â Áö¸¦ ¾Ë¸®±â À§ÇÑ ÀûÀýÇÑ ½Ã±â¸¦ °¢°¢ÀÇ WAN ¹Ì´ÏÆ÷Æ®¿¡°Ô ÁÖ±â À§Çؼ­, ¶óÀλ󿡼­ ¸ð´ÏÅÍ µÉ ¼ö ÀÖ´Â ÇöÀçÀÇ ¿ä±¸µÈ ¹Ìµð¾î ¸ðµåµé°ú ´Ù¸¥ ¹Ìµð¾î ¸ðµåµéÀÇ À¯´Ï¿Â¿¡ ±â¹ÝµÈ´Ù.

ÀÌ ¿äû¿¡ ´ëÇÑ Áö¿øÀº Àǹ«ÀûÀÌ´Ù.

ÀÌ ¿äûÀº ¾Æ·¡¿¡ Á¤ÀÇµÈ NDIS_TAPI_CONDITIONAL_MEDIA_DETECTION ±¸Á¶Ã¼¸¦ »ç¿ëÇÑ´Ù.:


typedef struct _NDIS_TAPI_CONDITIONAL_MEDIA_DETECTION { 

    IN ULONG             ulRequestID; 

    IN HDRV_LINE         hdLine; 

    IN ULONG             ulMediaModes; 

    IN LINE_CALL_PARAMS  LineCallParams; 

} NDIS_TAPI_CONDITIONAL_MEDIA_DETECTION, *PNDIS_TAPI_CONDITIONAL_MEDIA_DETECTION; 

ÀÌ ±¸Á¶Ã¼ÀÇ ¸â¹öµéÀº ¾Æ·¡ Á¤º¸¸¦ Æ÷ÇÔÇÑ´Ù.:

ulRequestID
¿¹¾àµÊ.

hdLine
¹Ìµð¾î ¸ð´ÏÅ͸µ°ú ÆÄ¶ó¹ÌÅʹɷµéÀÌ ¼³Á¤µÇ´Â ¶óÀο¡ ´ëÇÑ ¹Ì´ÏÆ÷Æ®ÀÇ ÇÚµéÀ» ÁöÁ¤ÇÑ´Ù.

ulMediaModes
È£Ãâ ¾îÇø®ÄÉÀ̼ǿ¡ °ü½ÉÀÌ ÀÖ´Â(interest) ÇöÀç ¹Ìµð¾î ¸ðµå(µé)À» ÁöÁ¤ÇÑ´Ù.(¾Ö¸Å??). ÀÌ ÆÄ¶ó¹ÌÅÍ´Â LINEMEDIAMODE ³»¿ëµéÀ» »ç¿ëÇÑ´Ù. ¼¼ºÎÀûÀÎ °ÍÀº ndistapi.h À» ºÁ¶ó.

LineCallParams
LINE_CALL_PARAMS ±¸Á¶Ã¼´Â ¶óÀÎ ÀåÄ¡°¡ Á¦°øÇؾßÇÏ´Â Á¤º¸¸¦ ÁöÁ¤ÇÑ´Ù. ÀÌ ¿äûÀÇ ¸ñÀûÀ» À§ÇÑ À¯ÀÏÇÑ °ü·ÃµÈ(relevent) ¸â¹ö´Â ¾Æ·¡ÀÌ´Ù.:

ULONG ulBearerMode;

ULONG ulMinRate;

ULONG ulMaxRate;

ULONG ulMediaMode;

ULONG ulCallParamFlags;

ULONG ulAddressMode;

¸¸¾à ulAddressMode ÀÇ °ªÀÌ LINEADDRESSMODE_ADDRESSID À̸é, ¶óÀÎ»ó¿¡ ÀÖ´Â ¾î¶² ÁÖ¼Ò´Â ¼ö¶ôÇÒ ¼ö ÀÖ´Ù. ±×·¸Áö ¾ÊÀ¸¸é, ulAddressMode °ªÀº ¹Ì´ÏÆ÷Æ®°¡ ÁöÁ¤µÈ originating ÁÖ¼Ò(Æù ³Ñ¹ö)¸¦ ã¾Æ¾ßÇϰųª ¶Ç´Â ¸¸¾à ±×°ÍÀÌ ulOrigAddressSize/Offset ¿Í the ulDevSpecificSize/Offset °ªÀÌ ¶ÇÇÑ °ü·ÃÀÌ ÀÖ´Â, Á¦°øÀÚ-ƯÁ¤ È®ÀåÀÎÁö¸¦ ¾Ë¸®´Â LINEADDRESSMODE_DIALABLEADDR ÀÌ´Ù. LINE_CALL_PARAMS ±¸Á¶Ã¼ÀÇ ¸ðµç ´Ù¸¥ ¸â¹öµéÀº ÀÌ OID ¿äû¿¡ °ü·ÃÀÌ ¾ø´Ù.(irrelevant)

MiniportSetInformation ÇÔ¼ö´Â ¾Æ·¡ÁßÀÇ Çϳª¸¦ ¸®ÅÏÇÒ ¼ö ÀÖ´Ù.;
NDIS_STATUS_SUCCESS
NDIS_STATUS_PENDING
NDIS_STATUS_TAPI_INVALLINEHANDLE
NDIS_STATUS_TAPI_NODRIVER
NDIS_STATUS_TAPI_RESOURCEUNAVAIL
NDIS_STATUS_TAPI_INVALMEDIAMODE
NDIS_STATUS_FAILURE

¸¸¾à ¹Ì´ÏÆ÷Æ®°¡ ¹Ìµð¾î ¸ðµåµéÀÇ ÁöÁ¤µÈ ÁýÇÕ¿¡ ´ëÇØ¼­ ¸ð´ÏÅÍÇÒ ¼ö ÀÖ°í, CallParams¿¡ ÁöÁ¤µÈ ´É·ÂµéÀ» Áö¿øÇÑ´Ù¸é, ±×°ÍÀº NDIS_STATUS_SUCCESSÀ¸·Î ¿äûÀ» ¿Ï¼ºÇÏÁö¸¸, ±×°ÍÀº º¯È­µÇÁö¾ÊÀº ¶óÀο¡ ´ëÇÑ ¾×Ƽºê ¹Ìµð¾î ¸ð´ÏÅ͸µ ¸ðµåµéÀ» ±×´ë·Î µÐ´Ù.

OID_TAPI_DROP

ÀÌ OID ´Â ÁöÁ¤µÈ È£ÃâÀ» µå¶øÇϰųª ¿¬°áÀ» ²÷À» °ÍÀ» ¿äûÇÑ´Ù.

»ç¿ëÀÚ-to-»ç¿ëÀÚ Á¤º¸´Â Ãß°¡ÀûÀ¸·Î È£Ãâ disconnect ÀÇ ºÎºÐÀ¸·Î½á Àü¼ÛµÉ ¼ö ÀÖ´Ù. ÀÌ ¿äûÀº ¾î¶² ¶§¶ó°í ¾îÇø®ÄÉÀ̼ǿ¡ ÀÇÇØ¼­ ¸¸µé¾îÁú ¼ö ÀÖ´Ù.

ÀÌ ¿äû¿¡ ´ëÇÑ Áö¿øÀº Àǹ«ÀûÀÌ´Ù.

ÀÌ ¿äûÀº ¾Æ·¡¿¡ Á¤ÀÇµÈ NDIS_TAPI_DROP ±¸Á¶Ã¼¸¦ »ç¿ëÇÑ´Ù.:


typedef struct _NDIS_TAPI_DROP { 

    IN ULONG      ulRequestID; 

    IN HDRV_CALL  hdCall; 

    IN ULONG      ulUserUserInfoSize; 

    IN UCHAR      UserUserInfo[1]; 

} NDIS_TAPI_DROP, *PNDIS_TAPI_DROP; 

ÀÌ ±¸Á¶Ã¼ÀÇ ¸â¹öµéÀº ¾Æ·¡ Á¤º¸¸¦ Æ÷ÇÔÇÑ´Ù.:

ulRequestID
¿¹¾àµÊ.

hdCall
µå¶øµÉ È£Ãâ¿¡ ´ëÇÑ ¹Ì´ÏÆ÷Æ®ÀÇ ÇÚµéÀ» ÁöÁ¤ÇÑ´Ù.

ulUserUserInfoSize
UserUserInfo¿¡ ÀÖ´Â »ç¿ëÀÚ-to-»ç¿ëÀÚ Á¤º¸ÀÇ ¹ÙÀÌÆ® Å©±â¸¦ ÁöÁ¤ÇÑ´Ù. ¸¸¾à ÀÌ ¸â¹ö°¡ 0À̶ó¸é, ¹Ì´ÏÆ÷Æ®´Â ´ÙÀ½ ¸â¹ö¸¦ ¹«½ÃÇØ¾ß ÇÑ´Ù.

UserUserInfo
È£Ãâ µå¶øÀÇ ºÎºÐÀ¸·Î½á ¸®¸ðÆ® ÆÄƼ¿¡ º¸³»Áú »ç¿ëÀÚ-to-»ç¿ëÀÚ Á¤º¸¸¦ Æ÷ÇÔÇÏ´Â ½ºÆ®¸µÀ» ÁöÁ¤ÇÑ´Ù. »ç¿ëÀÚ-to-»ç¿ëÀÚ Á¤º¸´Â ´ÜÁö ¾Æ·¡ÀÇ ³×Æ®¿öÅ©¿¡ ÀÇÇØ¼­ Áö¿øµÈ´Ù¸é º¸³»Áø´Ù. (OID_TAPI_GET_DEV_CAPS ¸¦ ºÁ¶ó)

MiniportSetInformation ÇÔ¼ö´Â ¾Æ·¡ÁßÀÇ Çϳª¸¦ ¸®ÅÏÇÒ ¼ö ÀÖ´Ù.;
NDIS_STATUS_SUCCESS
NDIS_STATUS_PENDING
NDIS_STATUS_TAPI_INVALCALLHANDLE
NDIS_STATUS_TAPI_INVALCALLSTATE
NDIS_STATUS_TAPI_USERUSERINFOTOOBIG
NDIS_STATUS_TAPI_RESOURCEUNAVAIL
NDIS_STATUS_FAILURE

¹Ì´ÏÆ÷Æ®°¡ ÀÌ ¿äûÀ» ¼º°øÀûÀ¸·Î ¿Ï¼ºÇÒ¶§, È£ÃâÀº ¾ÆÀ̵é(idle) »óÅ¿¡ ÀÖÀ» ¼ö ÀÖ´Ù. ±×·¯³ª, ¹Ì´ÏÆ÷Æ®´Â ±×°ÍÀÌ ÀÌ ÇÚµéÀ» À§Çؼ­ OID_TAPI_CLOSE_CALL ¿äûÀ» ¿Ï¼ºÇÒ ¶§±îÁö hdCall ÇÚµéÀ» ÁöÁ¤ÇÏ´Â Åë°è Äõ¸® °°Àº ¿äûµéÀ» ¿©ÀüÈ÷ ¼ö½ÅÇÒ ¼ö ÀÖ´Ù.

OID_TAPI_PROVIDER_SHUTDOWN

¾îÇø®ÄÉÀ̼ÇÀÌ ´õÀÌ»ó TAPI ¼­ºñ½ºµéÀ» »ç¿ëÇÏÁö ¾Ê±â¶§¹®¿¡ TAPI °¡ ±×°ÍÀÇ »óŸ¦ Áö¿ï¶§, ÀÌ OID ´Â ±×°ÍÀÇ TAPI ¿¬»êµéÀ» ¼Ë´Ù¿î ÇÒ°ÍÀ» ¹Ì´ÏÆ÷Æ®¿¡°Ô ¿äûÇÑ´Ù.

ÀÌ OID ¸¦ Á¦¿ÜÇϰí, ¹Ì´ÏÆ÷Æ®´Â ±×°ÍÀÌ Ã³¸®ÁßÀÎ TAP¿Í ¿¬°üµÈ ¾î´ø Ȱµ¿µéÀ» Á¾·áÇØ¾ßÇϰí, ÇöÀç ¿ÀÇÂÇÏ´Â ¾î¶² ¶óÀε鿡 ´ëÇÑ NDISWAN¿¡°Ô NDIS_MAC_LINE_DOWN ·Î NdisMIndicateStatus ¸¦ È£ÃâÇØ¾ßÇϰí, ±×¸®°í TAPI ¿¬»êµéÀ» ´õµë±â(track) À§Çؼ­ »ç¿ëÇÏ´Â ¾î¶² »óŸ¦ Áö¿ö¾ßÇÑ´Ù.

ÀÌ ¿äû¿¡ ´ëÇÑ Áö¿øÀº Àǹ«ÀûÀÌ´Ù.

ÀÌ ¿äûÀº ¾Æ·¡¿¡ Á¤ÀÇµÈ NDIS_TAPI_PROVIDER_SHUTDOWN ±¸Á¶Ã¼¸¦ »ç¿ëÇÑ´Ù.:


typedef struct _NDIS_TAPI_PROVIDER_SHUTDOWN { 

    IN ULONG  ulRequestID; 

} NDIS_TAPI_PROVIDER_SHUTDOWN, *PNDIS_TAPI_PROVIDER_SHUTDOWN; 

ÀÌ ±¸Á¶Ã¼ÀÇ ¸â¹öµéÀº ¾Æ·¡ Á¤º¸¸¦ Æ÷ÇÔÇÑ´Ù.:

ulRequestID
¿¹¾àµÊ.

MiniportSetInformation ÇÔ¼ö´Â ¾Æ·¡ÁßÀÇ Çϳª¸¦ ¸®ÅÏÇÒ ¼ö ÀÖ´Ù.;
NDIS_STATUS_SUCCESS
NDIS_STATUS_PENDING
NDIS_STATUS_TAPI_RESOURCEUNAVAIL
NDIS_STATUS_FAILURE

OID_TAPI_SET_APP_SPECIFIC

ÀÌ OID ´Â ÁöÁ¤µÈ È£ÃâÀÇ LINECALLINFO ±¸Á¶Ã¼ÀÇ ulAppSpecific ¸â¹ö¸¦ ¼³Á¤ÇÒ °ÍÀ» ¹Ì´ÏÆ÷Æ®¿¡°Ô ¿äûÇÑ´Ù. ÀÌ ±¸Á¶Ã¼ÀÇ ¼¼ºÎÀûÀÎ °ÍÀº ndistapi.h À» ºÁ¶ó.

ÀÌ ¿äû¿¡ ´ëÇÑ Áö¿øÀº Àǹ«ÀûÀÌ´Ù.

ÀÌ ¿äûÀº ¾Æ·¡¿¡ Á¤ÀÇµÈ NDIS_TAPI_SET_APP_SPECIFIC ±¸Á¶Ã¼¸¦ »ç¿ëÇÑ´Ù.:




typedef struct _NDIS_TAPI_SET_APP_SPECIFIC { 

    IN ULONG      ulRequestID; 

    IN HDRV_CALL  hdCall; 

    IN ULONG      ulAppSpecific; 

} NDIS_TAPI_SET_APP_SPECIFIC, *PNDIS_TAPI_SET_APP_SPECIFIC; 

ÀÌ ±¸Á¶Ã¼ÀÇ ¸â¹öµéÀº ¾Æ·¡ Á¤º¸¸¦ Æ÷ÇÔÇÑ´Ù.:

ulRequestID
¿¹¾àµÊ.

hdCall
¾îÇø®ÄÉÀ̼Ç-ƯÁ¤ ¸â¹ö°¡ ¼³Á¤µÇ±â À§ÇÑ È£Ãâ¿¡ ´ëÇÑ ¹Ì´ÏÆ÷Æ®ÀÇ ÇÚµéÀ» ÁöÁ¤ÇÑ´Ù.

ulAppSpecific
È£ÃâÀÇ LINECALLINFO ±¸Á¶Ã¼¿¡ ´ëÇÑ ulAppSpecific ¸â¹öÀÇ »õ·Î¿î ³»¿ëÀ» ÁöÁ¤ÇÑ´Ù. ÀÌ °ªÀº NIC µå¶óÀ̹ö¿¡ ÀÇÇØ¼­ ¹«°ü½ÉµÈ´Ù.(uninterpreted). ÀÌ °ªÀº ÀÌ ¿äûÀÌ ¸¸µé¾îÁú ¶§, NDISTAPI ¿¡ ÀÇÇØ¼­ ÀÔÁõµÇÁö(validated) ¾Ê´Â´Ù.

MiniportSetInformation ÇÔ¼ö´Â ¾Æ·¡ÁßÀÇ Çϳª¸¦ ¸®ÅÏÇÒ ¼ö ÀÖ´Ù.;
NDIS_STATUS_SUCCESS
NDIS_STATUS_PENDING
NDIS_STATUS_TAPI_INVALCALLHANDLE
NDIS_STATUS_TAPI_RESOURCEUNAVAIL
NDIS_STATUS_FAILURE

OID_TAPI_SET_CALL_PARAMS

ÀÌ OID ´Â Á¸ÀçÇϴ ȣÃâÀ» À§Çؼ­ ¾î¶² È£Ãâ ÆÄ¶ó¹ÌÅ͵éÀ» ¼³Á¤ÇÒ °ÍÀ» ¹Ì´ÏÆ÷Æ®¿¡°Ô ¿äûÇÑ´Ù.

ÀÌ ¿äû¿¡ ´ëÇÑ Áö¿øÀº Àǹ«ÀûÀÌ´Ù.

ÀÌ ¿äûÀº ¾Æ·¡¿¡ Á¤ÀÇµÈ NDIS_TAPI_SET_CALL_PARAMS ±¸Á¶Ã¼¸¦ »ç¿ëÇÑ´Ù.:


typedef struct _NDIS_TAPI_SET_CALL_PARAMS { 

    IN ULONG             ulRequestID; 

    IN HDRV_CALL         hdCall; 

    IN ULONG             ulBearerMode; 

    IN ULONG             ulMinRate; 

    IN ULONG             ulMaxRate; 

    IN BOOLEAN           bSetLineDialParams; 

    IN LINE_DIAL_PARAMS  LineDialParams; 

} NDIS_TAPI_SET_CALL_PARAMS, *PNDIS_TAPI_SET_CALL_PARAMS; 

ÀÌ ±¸Á¶Ã¼ÀÇ ¸â¹öµéÀº ¾Æ·¡ Á¤º¸¸¦ Æ÷ÇÔÇÑ´Ù.:

ulRequestID
¿¹¾àµÊ.

hdCall
¾Æ·¡ÀÇ ÆÄ¶ó¹ÌÅ͵éÀÌ º¯È­µÇ´Â °ÍÀ» À§ÇÑ È£Ãâ¿¡ ´ëÇÑ ¹Ì´ÏÆ÷Æ®ÀÇ ÇÚµéÀ» ÁöÁ¤ÇÑ´Ù.

ulBearerMode
È£Ãâ¿¡ ´ëÇÑ »õ·Î¿î Àü´ÞÀÚ(bearer) ¸ðµå¸¦ ÁöÁ¤ÇÑ´Ù. ÀÌ ¸â¹ö´Â ´ÜÁö ¾Æ·¡ÀÇ LINEBEARERMODE Ç÷¡±× ¼³Á¤ÁßÀÇ Çϳª¸¦ °¡Áú ¼ö ÀÖ´Ù.:

LINEBEARERMODE_VOICE

LINEBEARERMODE_SPEECH

LINEBEARERMODE_MULTIUSE

LINEBEARERMODE_DATA

LINEBEARERMODE_ALTSPEECHDATA

LINEBEARERMODE_NONCALLSIGNALING

ulMinRate
È£ÃâÀÇ »õ·Î¿î µ¥ÀÌÅÍ ºñÀ²(rate)¿¡ ´ëÇÑ ¾Æ·¡ÀÇ(lower) ¹Ù¿îµå¸¦ ÁöÁ¤ÇÑ´Ù. ÀÌ ¸â¹öÀÇ °ªÀº ¹Ì´ÏÆ÷Æ®°¡ È£ÃâµÇ±âÀü¿¡ NDISTAPI¿¡ ÀÇÇØ¼­ ÀÔÁõµÇÁö(validated) ¾Ê´Â´Ù. ÀÌ °ªÀº È£ÃâÀÚ°¡ ÀÌ°Í ¸¸Å­ ³·°Ô »õ·Î¿î ºñÀ²(rate)¸¦ ¼ö¶ôÇÒ °ÍÀ̶ó´Â°ÍÀ» ¾Ë¸°´Ù.

ulMaxRate
È£ÃâÀÇ »õ·Î¿î µ¥ÀÌÅÍ ºñÀ²(rate)¿¡ ´ëÇÑ À§ÀÇ(upper) ¹Ù¿îµå¸¦ ÁöÁ¤ÇÑ´Ù. ÀÌ ¸â¹öÀÇ °ªÀº ¹Ì´ÏÆ÷Æ®°¡ È£ÃâµÇ±âÀü¿¡ NDISTAPI¿¡ ÀÇÇØ¼­ ÀÔÁõµÇÁö(validated) ¾Ê´Â´Ù.

ÀÌ °ªÀº È£ÃâÀÚ°¡ Çϰí½Í¾îÇÏ´Â(like) ÃÖ´ë µ¥ÀÌÅÍ ºñÀ²À» ¾Ë¸°´Ù.

È£ÃâÀÚ°¡ Á¤È®ÇÑ ºñÀ²À» ¿ä±¸ÇÏ´Â °ÍÀ» ¾Ë¸®´Â ulMinRate ¿Í ulMaxRate ¸â¹öµé¿¡ ´ëÇÑ °ªÀº ¶È°°´Ù.

bSetLineDialParams
¾Æ·¡ÀÇ ´ÙÀ̾ ÆÄ¶ó¹ÌÅ͵éÀÌ È£ÃâÀ» À§Çؼ­ »ç¿ëµÉ Áö¸¦ °áÁ¤Çϳ®. ¸¸¾à ÀÌ ¸â¹ö°¡ FALSE À̸é, È£ÃâÀÇ ÇöÀç ´ÙÀÌ¾ó¸µ ÆÄ¶ó¹ÌÅ͵éÀº »ç¿ëµÇ¾î¾ßÇÏ°í ´ÙÀ½ ¸â¹ö´Â ¹«½ÃµÇ¾î¾ßÇÑ´Ù.

LineDialParams

ÀÌ ±¸Á¶Ã¼´Â È£Ãâ¿¡ ´ëÇÑ »õ·Î¿î ´ÙÀ̾ó ÆÄ¶ó¹ÌÅ͵éÀ» ÁöÁ¤ÇÑ´Ù. ¼¼ºÎÀûÀÎ °ÍÀº ndistapi.h À» ºÁ¶ó.

MiniportSetInformation ÇÔ¼ö´Â ¾Æ·¡ÁßÀÇ Çϳª¸¦ ¸®ÅÏÇÒ ¼ö ÀÖ´Ù.;
NDIS_STATUS_SUCCESS
NDIS_STATUS_PENDING
NDIS_STATUS_TAPI_INVALCALLHANDLE
NDIS_STATUS_TAPI_INVALCALLSTATE
NDIS_STATUS_TAPI_INVALBEARERMODE
NDIS_STATUS_TAPI_BEARERMODEUNAVAIL
NDIS_STATUS_TAPI_INVALRATE
NDIS_STATUS_TAPI_RATEUNAVAIL
NDIS_STATUS_TAPI_RESOURCEUNAVAIL
NDIS_STATUS_FAILURE

OID_TAPI_SET_DEFAULT_MEDIA_DETECTION

ÀÌ OID ´Â ¾Ë·ÁÁø ¶óÀÎÀ» °ËÃâÇϱâ À§Çؼ­ »õ·Î¿î ¹Ìµð¾î ¸ðµåµéÀÇ ÁýÇÕÀ» »ç¿ëÇÒ °ÍÀ» ¹Ì´ÏÆ÷Æ®¿¡°Ô ¿äûÇÏ´Ù. ±× ¶§¹®¿¡, ±×°ÍÀÌ »ç¿ëÁßÀÎ °ÍÀ» ¼³Á¤ÇÒ ¶§¸¶´Ù ´ëÄ¡ÇÑ´Ù.

¹Ì´ÏÆ÷Æ®´Â ÀÌ ¿äûÀÌ µé¾î¿À´Â È£ÃâÀÇ ¹Ìµð¾î ¸ðµå¿¡ ´ëÇØ¼­ ¼º°øÀûÀ¸·Î ¿Ï¼ºµÉ¶§±îÁö µé¾î¿À´Â È£ÃâÀ» NDIWAN ¿¡°Ô ÅëÁöÇÏÁö ¾Ê¾Æ¾ß ÇÑ´Ù.

ÀÌ ¿äû¿¡ ´ëÇÑ Áö¿øÀº Àǹ«ÀûÀÌ´Ù.

ÀÌ ¿äûÀº ¾Æ·¡¿¡ Á¤ÀÇµÈ NDIS_TAPI_SET_DEFAULT_MEDIA_DETECTION ±¸Á¶Ã¼¸¦ »ç¿ëÇÑ´Ù.:


typedef struct _NDIS_TAPI_SET_DEFAULT_MEDIA_DETECTION { 

    IN ULONG      ulRequestID; 

    IN HDRV_LINE  hdLine; 

    IN ULONG      ulMediaModes; 

} NDIS_TAPI_SET_DEFAULT_MEDIA_DETECTION, *PNDIS_TAPI_SET_DEFAULT_MEDIA_DETECTION; 

ÀÌ ±¸Á¶Ã¼ÀÇ ¸â¹öµéÀº ¾Æ·¡ Á¤º¸¸¦ Æ÷ÇÔÇÑ´Ù.:

ulRequestID
¿¹¾àµÊ.

hdLine
¼³Á¤µÇ¾ßÇÏ´Â ±âº» ¹Ìµð¾î ¸ðµå¸¦ À§ÇÑ ¶óÀο¡ ´ëÇÑ ¹Ì´ÏÆ÷Æ®ÀÇ ÇÚµéÀ» ÁöÁ¤ÇÑ´Ù.

ulMediaModes
NDISTAPI ¿¡ °ü½ÉÀÌ ÀÖ´Â ¹Ìµð¾î ¸ðµå(µé)À» ÁöÁ¤ÇÑ´Ù. ÀÌ ¸â¹ö´Â Çϳª ÀÌ»óÀÇ LINEMEDIAMODE »ó¼öµé(constants)À» ¼³Á¤ÇÑ´Ù. ¼¼ºÎÀûÀÎ °ÍÀº ndistapi.h À» ºÁ¶ó.

ÀÌ ¿äûÀº ¾Æ·¡¿¡ Á¤ÀÇµÈ NDIS_TAPI_SET_CALL_PARAMS ±¸Á¶Ã¼¸¦ »ç¿ëÇÑ´Ù.:
NDIS_STATUS_SUCCESS
NDIS_STATUS_PENDING
NDIS_STATUS_TAPI_INVALLINEHANDLE
NDIS_STATUS_TAPI_INVALMEDIAMODE
NDIS_STATUS_TAPI_NODRIVER
NDIS_STATUS_TAPI_RESOURCEUNAVAIL
NDIS_STATUS_FAILURE

OID_TAPI_SET_DEV_CONFIG

ÀÌ OID ´Â OID_TAPI_GET_DEV_CONFIG¸¦ »ç¿ëÇÔÀ¸·Î½á ¾Õ¾î ¾òÀº ±¸¼ºÀ¸·ÎºÎÅÍ ¶óÀÎ ÀåÄ¡¿¡ ÀÏ´ëÀÏ·Î ¿¬°üµÈ ÀåÄ¡ÀÇ ±¸¼ºÀ» º¹±¸ÇÒ °ÍÀ» ¹Ì´ÏÆ÷Æ®¿¡°Ô ¿äûÇÑ´Ù.

ÀÌ ±¸Á¶Ã¼ÀÇ ³»¿ëÀº ¹Ì´ÏÆ÷Æ®ÀÇ ¶óÀΰú ÀåÄ¡ Ŭ·¡½º¿¡ ƯÁ¤ÀûÀÌ´Ù.

ÀÌ ¿äû¿¡ ´ëÇÑ Áö¿øÀº Àǹ«ÀûÀÌ´Ù.

ÀÌ ¿äûÀº ¾Æ·¡¿¡ Á¤ÀÇµÈ NDIS_TAPI_SET_DEV_CONFIG ±¸Á¶Ã¼¸¦ »ç¿ëÇÑ´Ù.:


typedef struct _NDIS_TAPI_SET_DEV_CONFIG { 

    IN ULONG  ulRequestID; 

    IN ULONG  ulDeviceID; 

    IN ULONG  ulDeviceClassSize; 

    IN ULONG  ulDeviceClassOffset; 

    IN ULONG  ulDeviceConfigSize; 

    IN UCHAR  DeviceConfig[1]; 

} NDIS_TAPI_SET_DEV_CONFIG, *PNDIS_TAPI_SET_DEV_CONFIG; 

ÀÌ ±¸Á¶Ã¼ÀÇ ¸â¹öµéÀº ¾Æ·¡ Á¤º¸¸¦ Æ÷ÇÔÇÑ´Ù.:

ulRequestID
¿¹¾àµÊ.

ulDeviceID
±¸¼ºµÉ ¶óÀÎ ÀåÄ¡¸¦ ÁöÁ¤ÇÑ´Ù. ÀÌ °ªÀº ¾ÕÀÇ OID_TAPI_PROVIDER_INITIALIZE ¿äû¿¡¼­ ¼³Á¤µÈ´Ù.

ulDeviceClassSize
º¹±¸µÉ ÀåÄ¡ÀÇ ±¸¼ºÀ» À§ÇÑ ÀåÄ¡ Ŭ·¡½ºÀÇ ¹ÙÀÌÆ® Å©±â¸¦ ÁöÁ¤ÇÑ´Ù. À¯È¿ÇÑ ÀåÄ¡ Ŭ·¡½º ½ºÆ¼¸µÀº ±×°ÍÀÌ "¶óÀÎ" ÀåÄ¡¿¡ Àû¿ëµÉ ¶§ OID_TAPI_GET_ID ¿äûÀ» À§Çؼ­ ÁöÁ¤µÈ ÀÌ·¯ÇÑ °Í°ú ¶È°°´Ù. (ulSelect ´Â °ª LINECALLSELECT_LINE¸¦ °¡Áø´Ù.)

ulDeviceClassOffset
º¹±¸µÉ ÀåÄ¡ÀÇ ±¸¼ºÀ» À§ÇÑ ÀåÄ¡ Ŭ·¡½ºÀÇ ¹ÙÀÌÆ® ¿É¼ÂÀ» ÁöÁ¤ÇÑ´Ù.

ulDeviceConfigSize
DeviceConfig¿¡¼­ ¹ÙÀÌÆ® ³Ñ¹ö¸¦ ÁöÁ¤ÇÑ´Ù. ÀÌ °ªÀº ÀÌ¹Ì ¾ÕÀÇ OID_TAPI_GET_DEV_CONFIG ¿äû¿¡¼­ ¸®ÅÏµÈ VAR_STRING ½ºÆ®¸µ¿¡ ÀÖ´Â ulStringSize ¸â¹ö¿¡ ÀÌ¹Ì ¸®ÅϵȴÙ.

DeviceConfig
¾ÕÀÇ OID_TAPI_GET_DEV_CONFIG ¿äû¿¡ ´ëÇÑ VAR_STRING ±¸Á¶Ã¼ÀÇ °¡º¯ ºÎºÐ¿¡¼­ ¸®ÅÏµÈ µ¥ÀÌÅ͸¦ ÁöÁ¤ÇÑ´Ù.

ÀÌ ¿äûÀº ¾Æ·¡¿¡ Á¤ÀÇµÈ NDIS_TAPI_SET_DEV_CONFIG ±¸Á¶Ã¼¸¦ »ç¿ëÇÑ´Ù.:
NDIS_STATUS_SUCCESS
NDIS_STATUS_PENDING
NDIS_STATUS_TAPI_INVALDEVICECLASS
NDIS_STATUS_TAPI_INVALPARAM
NDIS_STATUS_TAPI_NODRIVER
NDIS_STATUS_TAPI_RESOURCEUNAVAIL
NDIS_STATUS_FAILURE

OID_TAPI_SET_MEDIA_MODE

ÀÌ OID´Â ±× È£Ãâ¿¡ ´ëÇÑ LINE_CALL_INFO ±¸Á¶Ã¼¿¡ ÀúÀåµÈ °ÍÀ¸·Î½á È£ÃâÀÇ ¹Ìµð¾î ¸ðµå¸¦ ¹Ù²Ü°ÍÀ» ¹Ì´ÏÆ÷Æ®¿¡°Ô ¿äûÇÑ´Ù. LINE_CALL_INFO ÀÇ ¼±¾ð¿¡ ´ëÇØ¼­´Â ndistapi.h ¸¦ ºÁ¶ó.

ÀÌ ¿äû¿¡ ´ëÇÑ Áö¿øÀº Àǹ«ÀûÀÌ´Ù.

ÀÌ ¿äûÀº ¾Æ·¡¿¡ Á¤ÀÇµÈ NDIS_TAPI_SET_MEDIA_MODE ±¸Á¶Ã¼¸¦ »ç¿ëÇÑ´Ù.:


typedef struct _NDIS_TAPI_SET_MEDIA_MODE { 

    IN ULONG      ulRequestID; 

    IN HDRV_CALL  hdCall; 

    IN ULONG      ulMediaMode; 

} NDIS_TAPI_SET_MEDIA_MODE, *PNDIS_TAPI_SET_MEDIA_MODE; 

ÀÌ ±¸Á¶Ã¼ÀÇ ¸â¹öµéÀº ¾Æ·¡ Á¤º¸¸¦ Æ÷ÇÔÇÑ´Ù.:

ulRequestID
¿¹¾àµÊ.

hdCall
¹Ìµð¾î ¸ðµå¸¦ º¯È­ÇؾßÇϴ ȣÃâ¿¡ ´ëÇÑ ¹Ì´ÏÆ÷Æ®ÀÇ ÇÚµéÀ» ÁöÁ¤ÇÑ´Ù.

ulMediaMode
Çϳª ÀÌ»óÀÇ LINEMEDIAMODE_XXX Ç÷¡±× È£ÃâÀ» À§ÇÑ »õ·Î¿î ¹Ìµð¾î ¸ðµå(µé)À» ÁöÁ¤ÇÑ´Ù. ¸¸¾à¿¡ LINEMEDIAMODE_UNKNOWN Ç÷¡±×°¡ ¼³Á¤µÇ¸é, ´Ù¸§ ¹Ìµð¾î ¸ðµå Ç÷¡±×´Â ¶ÇÇÑ ¼³Á¤µÉ ¼ö ÀÖ´Ù. ±×·± Ç÷¡±×µéÀÇ Á¶ÇÕÀÌ È£ÃâÀÇ ¹Ìµð¾î ¸ðµå°¡ ¿ÏÀüÈ÷ °áÁ¤µÇ´Â °ÍÀÌ ¾Æ´Ï¶ó, °¡´ÉÇÑ ¹Ìµð¾î ¸ðµåµéÀÇ ¼­ºê¼ÂÀ¸·Î narrowed ´Â °ÍÀ» ÁöÁ¤ÇÑ´Ù.(¾Ö¸Å??) ¸¸¾à LINEMEDIAMODE_UNKNOWN Ç÷¡±×°¡ Áö¿öÁö¸é, ´ÜÁö ½Ì±Û ¹Ìµð¾î ¸ðµå°¡ ÁöÁ¤µÉ ¼ö ÀÖ´Ù.

MiniportSetInformation ÇÔ¼ö´Â ¾Æ·¡ÁßÀÇ Çϳª¸¦ ¸®ÅÏÇÒ ¼ö ÀÖ´Ù.;
NDIS_STATUS_SUCCESS
NDIS_STATUS_PENDING
NDIS_STATUS_TAPI_INVALCALLHANDLE
NDIS_STATUS_TAPI_INVALMEDIAMODE
NDIS_STATUS_TAPI_RESOURCEUNAVAIL
NDIS_STATUS_FAILURE

OID_TAPI_SET_STATUS_MESSAGES

ÀÌ OID´Â NDISTAPI°¡ ¹Ì´ÏÆ÷Æ®°¡ ÁöÁ¤µÈ ¶óÀÎÀ̳ª ±×°ÍÀÇ ÁÖ¼ÒµéÀÇ ¾î¶²°ÍÀ» À§ÇÑ »óÅ º¯È­µé¿¡ ¿¬°üµÈ À̺¥Æ®µéÀ» ¹ß»ýÇÒ ¼ö ÀÖ´Â ÅëÁö ¸Þ½ÃÁöµéÀ» ÁöÁ¤Çϴ°ÍÀ» Çã¶ôÇÒ °ÍÀ» ¿äûÇÑ´Ù.

±âº»ÀûÀ¸·Î, address-status ¿Í line-status º¸°í´Â(reporting)´Â Ãʱ⿡ ¶óÀο¡ ´ëÇØ¼­ µð½º¿¡À̺íÀÌ´Ù.

ÀÌ ¿äû¿¡ ´ëÇÑ Áö¿øÀº Àǹ«ÀûÀÌ´Ù.

ÀÌ ¿äûÀº ¾Æ·¡¿¡ Á¤ÀÇµÈ NDIS_TAPI_SET_STATUS_MESSAGES ±¸Á¶Ã¼¸¦ »ç¿ëÇÑ´Ù.:


typedef struct _NDIS_TAPI_SET_STATUS_MESSAGES { 

    IN ULONG      ulRequestID; 

    IN HDRV_LINE  hdLine; 

    IN ULONG      ulLineStates; 

    IN ULONG      ulAddressStates; 

} NDIS_TAPI_SET_STATUS_MESSAGES, *PNDIS_TAPI_SET_STATUS_MESSAGES; 

ÀÌ ±¸Á¶Ã¼ÀÇ ¸â¹öµéÀº ¾Æ·¡ Á¤º¸¸¦ Æ÷ÇÔÇÑ´Ù.:

ulRequestID
¿¹¾àµÊ.

hdLine
¶óÀÎÀåÄ¡¿¡ ´ëÇÑ ¹Ì´ÏÆ÷Æ®ÀÇ ÇÚµéÀ» ÁöÁ¤ÇÑ´Ù.

ulLineStates
NDISTAPI¿¡°Ô º¸³»Á®¾ßÇÏ´Â ¸Þ½ÃÁöµéÀ» À§ÇÑ »óÅ º¯È­µéÀ» ¾Ë¸®´Â ºñÆ® ¹è¿­À» ÁöÁ¤ÇÑ´Ù. ÀÌ ÆÄ¶ó¹ÌÅÍ´Â LINEDEVSTATE »ó¼öµéÀ» »ç¿ëÇÑ´Ù. ¼¼ºÎÀûÀÎ °ÍÀº ndistapi.h À» ºÁ¶ó.

ulAddressStates
NDISTAPI¿¡ ÀûÇÕÇÑ ÅëÁöµéÀ» º¸³»±â À§Çؼ­ ¸ð´ÏÅÍÇØ¾ßÇÏ´Â ¹Ì´ÏÆ÷Æ®ÀÇ »óÅ º¯È­µéÀ» ¾Ë¸®´Â ºñÆ® ¹è¿­À» ÁöÁ¤ÇÑ´Ù. ÀÌ °ªÀº LINEADDRESSSTATE Ç÷¡±×ÀÇ ORed Á¶ÇÕÀÌ´Ù. ¼¼ºÎÀûÀÎ °ÍÀº ndistapi.h À» ºÁ¶ó.

ÀÌ ¿äûÀº ¾Æ·¡¿¡ Á¤ÀÇµÈ NDIS_TAPI_SET_MEDIA_MODE ±¸Á¶Ã¼¸¦ »ç¿ëÇÑ´Ù.:
NDIS_STATUS_SUCCESS
NDIS_STATUS_PENDING
NDIS_STATUS_TAPI_INVALLINEHANDLE
NDIS_STATUS_TAPI_INVALLINESTATE
NDIS_STATUS_TAPI_RESOURCEUNAVAIL
NDIS_STATUS_FAILURE

OID_TAPI_ACCEPT

ÀÌ OID ´Â ÁöÁ¤µÈ È£ÃâÀ» ¼ö¶ôÇÒ °ÍÀ» ¹Ì´ÏÆ÷Æ®¿¡°Ô ¿äûÇÑ´Ù. Ãß°¡ÀûÀ¸·Î, ±×°ÍÀº ¹Ì´ÏÆ÷Æ®°¡ ÁöÁ¤µÈ »ç¿ëÀÚ-to-»ç¿ëÀÚ Á¤º¸¸¦ È£Ãâ ÆÄÆ¼¿¡°Ô º¸³»´Â °ÍÀ» ¿äûÇÑ´Ù.

ÀÌ ¿äû¿¡ ´ëÇÑ Áö¿øÀº Ãß°¡ÀûÀÌ´Ù.

ÀÌ ¿äûÀº ¾Æ·¡¿¡ Á¤ÀÇµÈ NDIS_TAPI_ACCEPT ±¸Á¶Ã¼¸¦ »ç¿ëÇÑ´Ù.:


typedef struct _NDIS_TAPI_ACCEPT { 

    IN ULONG      ulRequestID; 

    IN HDRV_CALL  hdCall; 

    IN ULONG      ulUserUserInfoSize; 

    IN UCHAR      UserUserInfo[1]; 

} NDIS_TAPI_ACCEPT, *PNDIS_TAPI_ACCEPT; 

ÀÌ ±¸Á¶Ã¼ÀÇ ¸â¹öµéÀº ¾Æ·¡ Á¤º¸¸¦ Æ÷ÇÔÇÑ´Ù.:

ulRequestID
¿¹¾àµÊ.

hdCall
¼ö¶ôµÉ È£Ãâ¿¡ ´ëÇÑ ¹Ì´ÏÆ÷Æ®ÀÇ ÇÚµéÀ» ÁöÁ¤ÇÑ´Ù. µå¶óÀ̹ö´Â LINE_EVENT_NEWCALL ¾Ë¸²À¸·Î NdisMIndicateStatus ¸¦ È£ÃâÇÒ ¶§ ÀÌ ÇÚµéÀ» ¼³Á¤ÇÑ´Ù.

ulUserUserInfoSize
UserUserInfo¿¡ ÀÖ´Â »ç¿ëÀÚ-to-»ç¿ëÀÚ Á¤º¸ÀÇ ¹ÙÀÌÆ® Å©±â¸¦ ÁöÁ¤ÇÑ´Ù. ¸¸¾à ÀÌ ¸â¹ö°¡ 0À̸é, ¹Ì´ÏÆ÷Æ®´Â ´ÙÀ½ ¸â¹ö¸¦ ¹«½ÃÇØ¾ß ÇÑ´Ù.

UserUserInfo
È£Ãâ-¼ö¶ô ¿¬»êÀÇ ºÎºÐÀ¸·ÎºÎÅÍ ¸®¸ðÆ® ÆÄƼ¿¡ º¸³»Áú »ç¿ëÀÚ-to-»ç¿ëÀÚ Á¤º¸¸¦ Æ÷ÇÔÇÏ´Â ½ºÆ®¸µÀ» ÁöÁ¤ÇÑ´Ù. »ç¿ëÀÚ-to-»ç¿ëÀÚ Á¤º¸´Â ¸¸¾à ¾Æ·¡ÀÇ ³×Æ®¿öÅ©·ÎºÎÅÍ Áö¿øµÈ´Ù¸é º¸³»Áø´Ù(OID_TAPI_GET_DEV_CAPS ¸¦ ºÁ¶ó).

MiniportSetInformation ÇÔ¼ö´Â ¾Æ·¡ÁßÀÇ Çϳª¸¦ ¸®ÅÏÇÒ ¼ö ÀÖ´Ù.;
NDIS_STATUS_SUCCESS
NDIS_STATUS_PENDING
NDIS_STATUS_TAPI_INVALCALLHANDLE
NDIS_STATUS_TAPI_INVALCALLSTATE
NDIS_STATUS_TAPI_RESOURCEUNAVAIL
NDIS_STATUS_TAPI_USERUSERINFOTOOBIG
NDIS_STATUS_FAILURE

OID_TAPI_DIAL

ÀÌ OID´Â ÁöÁ¤µµ È£Ãâ»ó¿¡ ÀÖ´Â ÁöÁ¤µÈ ¹øÈ£¿¡ ´ÙÀ̾óÇÒ °ÍÀ» ¹Ì´ÏÆ÷Æ®¿¡°Ô ¿äûÇÑ´Ù.

ÀÌ ¿äû¿¡ ´ëÇÑ Áö¿øÀº Ãß°¡ÀûÀÌ´Ù.

ÀÌ ¿äûÀº ¾Æ·¡¿¡ Á¤ÀÇµÈ NDIS_TAPI_DIAL ±¸Á¶Ã¼¸¦ »ç¿ëÇÑ´Ù.:


typedef struct _NDIS_TAPI_DIAL { 

    IN ULONG      ulRequestID; 

    IN HDRV_CALL  hdCall; 

    IN ULONG      ulDestAddressSize; 

    IN CHAR       szDestAddress[1]; 

} NDIS_TAPI_DIAL, *PNDIS_TAPI_DIAL; 

ÀÌ ±¸Á¶Ã¼ÀÇ ¸â¹öµéÀº ¾Æ·¡ Á¤º¸¸¦ Æ÷ÇÔÇÑ´Ù.:

ulRequestID
¿¹¾àµÊ.

hdCall
´ÙÀ̾óÇØ¾ßÇÒ È£Ãâ¿¡ ´ëÇÑ ¹Ì´ÏÆ÷Æ®ÀÇ ÇÚµéÀ» ÁöÁ¤ÇÑ´Ù. ÀÌ ÇÚµéÀº ¾ÕÀÇ OID_TAPI_MAKE_CALL ¿äû¿¡¼­ ¼³Á¤µÈ´Ù.

ulDestAddressSize
´ÙÀ½ ¸â¹ö¿¡ ÀÖ´Â ÁÖ¼ÒÀÇ ¹ÙÀÌÆ® Å©±â¸¦ ÁöÁ¤ÇÑ´Ù.

szDestAddress
Ç¥ÁØ dialable ³Ñ¹ö Æ÷¸ä¿¡¼­ ´ÙÀ̾óµÉ ¸ñÀûÁö¸¦ ÁöÁ¤ÇÑ´Ù.

MiniportSetInformation ÇÔ¼ö´Â ¾Æ·¡ÁßÀÇ Çϳª¸¦ ¸®ÅÏÇÒ ¼ö ÀÖ´Ù.;
NDIS_STATUS_SUCCESS
NDIS_STATUS_PENDING
NDIS_STATUS_TAPI_INVALCALLHANDLE
NDIS_STATUS_TAPI_INVALADDRESS
NDIS_STATUS_TAPI_INVALCALLSTATE
NDIS_STATUS_TAPI_ADDRESSBLOCKED
NDIS_STATUS_TAPI_DIALBILLING
NDIS_STATUS_TAPI_DIALQUIET
NDIS_STATUS_TAPI_DIALDIALTONE
NDIS_STATUS_TAPI_DIALPROMPT
NDIS_STATUS_TAPI_OPERATIONUNAVAIL
NDIS_STATUS_TAPI_RESOURCEUNAVAIL
NDIS_STATUS_FAILURE

OID_TAPI_SECURE_CALL

ÀÌ OID´Â ¹Ì´ÏÆ÷Æ®¿¡°Ô È£ÃâÀÇ ¹Ìµð¾î ½ºÆ®¸²¿¡ ¿µÇâÀ» ³¢Ä¥¼ö ÀÖ´Â ÀÎÅÍ·´¼Ç ȤÀº Ãæµ¹·ÎºÎÅÍÀÇ Æ¯Á¤ÇÑ È£ÃâÀ» º¸È£Çϵµ·Ï ¿äûÇÑ´Ù.

ÀÌ ¿äû¿¡´ëÇÑ Áö¿øÀº Ãß°¡ÀûÀΰÍÀÌ´Ù.

ÀÌ ¿äûÀº ´ÙÀ½°ú °°ÀÌ Á¤ÀÇµÈ NDIS_TAPI_SECURE_CALL±¸Á¶Ã¼¸¦ »ç¿ëÇÑ´Ù.


typedef struct _NDIS_TAPI_SECURE_CALL { 

    IN ULONG      ulRequestID; 

    IN HDRV_CALL  hdCall; 

} NDIS_TAPI_SECURE_CALL, *PNDIS_TAPI_SECURE_CALL; 



ÀÌ ±¸Á¶Ã¼ÀÇ ¸â¹ö´Â ´ÙÀ½ÀÇ Á¤º¸¸¦ Æ÷ÇÔÇÑ´Ù.:

ulRequestID
¿¹¾àµÊ.

hdCall
º¸È£µÉ È£Ãâ¿¡´ëÇÑ ¹Ì´ÏÆ÷Æ®ÀÇ ÇÚµéÀ» ÁöÁ¤ÇÑ´Ù.

MiniportSetInformationÇÔ¼ö´Â ´ÙÀ½Áß Çϳª¸¦ ¸®ÅÏÇÒ¼ö ÀÖ´Ù.:
NDIS_STATUS_SUCCESS
NDIS_STATUS_PENDING
NDIS_STATUS_TAPI_INVALCALLHANDLE
NDIS_STATUS_TAPI_INVALCALLSTATE
NDIS_STATUS_TAPI_OPERATIONUNAVAIL
NDIS_STATUS_TAPI_RESOURCEUNAVAIL
NDIS_STATUS_FAILURE

OID_TAPI_SELECT_EXT_VERSION

ÀÌ OID´Â ¹Ì´ÏÆ÷Æ®°¡ ÀεðÄÉÀÌÆ®µÈ ¶óÀÎ ÀåÄ¡¸¦ À§ÇØ ÀεðÄÉÀÌÆ®µÈ È®Àå ¹öÀüÀ» ¼±ÅÃÇϵµ·Ï ¿ä±¸ÇÑ´Ù. ¶óÀο¡¼­ °è¼ÓÀûÀÎ ¿ä±¸µéÀº ¼±ÅÃµÈ È®Àå ¹öÀü¿¡ µû¶ó ¿î¿µÇÑ´Ù.

ÀÌ·¯ÇÑ ¿ä±¸¸¦ À§ÇÑ Áö¿øÀº ¼±ÅÃÀûÀÌ´Ù.

ÀÌ·¯ÇÑ ¿ä±¸´Â ´ÙÀ½°ú °°ÀÌ Á¤ÀǵÈ, NDIS_TAPI_SELECT_EXT_VERSION ±¸Á¶Ã¼¸¦ »ç¿ëÇÑ´Ù.


typedef struct _NDIS_TAPI_SELECT_EXT_VERSION { 

    IN ULONG      ulRequestID; 

    IN HDRV_LINE  hdLine; 

    IN ULONG      ulExtVersion; 

} NDIS_TAPI_SELECT_EXT_VERSION, *PNDIS_TAPI_SELECT_EXT_VERSION; 

ÀÌ ±¸Á¶Ã¼ÀÇ ¸â¹öµéÀº ´ÙÀ½°ú °°Àº Á¤º¸¸¦ Æ÷ÇÔÇÑ´Ù.

ulRequestID
¿¹¾à

hdLine
È®Àå ¹öÀüÀÌ ¼±ÅÃµÈ ¶óÀο¡ ´ëÇÑ ÇÚµéÀ» ÁöÁ¤ÇÑ´Ù.

ulExtVersion
¼±ÅÃµÈ È®Àå ¹öÀüÀ» ÁöÁ¤ÇÑ´Ù. °¡Àå Å« 2 ¹ÙÀÌÆ®´Â ¸ÞÀÌÀú ¹öÀü ³Ñ¹ö¸¦ ÁöÁ¤Çϰí ÀÛÀº ÀǹÌÀÖ´Â µÎ ¹ÙÀÌÆ®´Â ¸¶ÀÌ³Ê ¹öÀü ³Ñ¹ö¸¦ ÁöÁ¤ÇÑ´Ù. 0Àº ¹Ì´ÏÆ÷Æ®°¡ Çö ¼±ÅÃÀ» Ãë¼ÒÇØ¾ß ÇÑ´Ù´Â °ÍÀ» °¡¸®Å²´Ù.

ÀÌ ¹öÀüÀº ¼±Çà OID_TAPI_NEGOTIATE_EXT_VERSION ¿ä±¸¿¡¼­ Çù»óµÇ¾îÁø´Ù.

MiniportSetInformation ÇÔ¼ö´Â ´ÙÀ½°ú °°Àº Çϳª¸¦ ¸®ÅÏÇÒ ¼ö ÀÖ´Ù.
NDIS_STATUS_SUCCESS
NDIS_STATUS_PENDING
NDIS_STATUS_TAPI_INCOMPATIBLEEXTVERSION
NDIS_STATUS_TAPI_OPERATIONUNAVAIL
NDIS_STATUS_TAPI_RESOURCEUNAVAIL
NDIS_STATUS_FAILURE

OID_TAPI_SEND_USER_USER_INFO

ÀÌ OID´Â ¹Ì´ÏÆ÷Æ®¿¡°Ô ƯÁ¤ ÄÝ¿¡¼­ ¸®¸ðÆ® ÆÄƼ¿¡°Ô »ç¿ëÀÚ ´ë »ç¿ëÀÚ Á¤º¸¸¦ º¸³»µµ·Ï ¿ä±¸ÇÑ´Ù.

ÀÌ·¯ÇÑ ¿ä±¸¸¦ À§ÇÑ Áö¿øÀº ¼±ÅÃÀûÀÌ´Ù.

ÀÌ·¯ÇÑ ¿ä±¸´Â ´ÙÀ½°ú °°ÀÌ Á¤ÀÇµÈ NDIS_TAPI_SEND_USER_USER_INFO ±¸Á¶Ã¼¸¦ »ç¿ëÇÑ´Ù.


typedef struct _NDIS_TAPI_SEND_USER_USER_INFO { 

    IN ULONG      ulRequestID; 

    IN HDRV_CALL  hdCall; 

    IN ULONG      ulUserUserInfoSize; 

    IN UCHAR      UserUserInfo[1]; 

} NDIS_TAPI_SEND_USER_USER_INFO, *PNDIS_TAPI_SEND_USER_USER_INFO; 

ÀÌ ±¸Á¶Ã¼ÀÇ ¸â¹öµéÀº ´ÙÀ½ÀÇ Á¤º¸¸¦ Æ÷ÇÔÇÑ´Ù.

ulRequestID
¿¹¾à

hdCall
user-to-user Á¤º¸¸¦ º¸³»´Â ÄÝ¿¡ ´ëÇÑ ¹Ì´ÏÆ÷Æ®ÀÇ ÇÚµéÀ» ÁöÁ¤ÇÑ´Ù.

UserUserInfo
ÄÝ ¼ö¶ô ¿¬»êÀÇ ºÎºÐÀ¸·Î ¸®¸ðÆ® ÆÄƼ·Î º¸³»Áø »ç¿ëÀÚ´ë»ç¿ëÀÚ Á¤º¸¸¦ Æ÷ÇÔÇÏ´Â ¹®ÀÚ¿­À» ÁöÁ¤ÇÑ´Ù. »ç¿ëÀÚ´ë»ç¿ëÀÚ Á¤º¸´Â ¸¸¾à ¾Æ·¡ ³×Æ®¿öÅ©¿¡ ÀÇÇØ Áö¿øµÈ´Ù¸é, º¸³»¾îÁø´Ù. (OID_TAPI_GET_DEV_CAPS¸¦ ºÁ¶ó)

MiniportSetInformation ÇÔ¼ö´Â ´ÙÀ½°ú °°Àº Çϳª¸¦ ¸®ÅÏÇÒ ¼ö ÀÖ´Ù.
NDIS_STATUS_SUCCESS
NDIS_STATUS_PENDING
NDIS_STATUS_TAPI_INVALCALLHANDLE
NDIS_STATUS_TAPI_INVALCALLSTATE
NDIS_STATUS_TAPI_USERUSERINFOTOOBIG
NDIS_STATUS_TAPI_OPERATIONUNAVAIL
NDIS_STATUS_TAPI_RESOURCEUNAVAIL
NDIS_STATUS_FAILURE