NDIS_REQUEST
typedef struct _NDIS_REQUEST {
UCHAR MacReserved[16];
NDIS_REQUEST_TYPE RequestType;
union _DATA {
struct QUERY_INFORMATION {
NDIS_OID Oid;
PVOID InformationBuffer;
UINT InformationBufferLength;
UINT BytesWritten;
UINT BytesNeeded;
} QUERY_INFORMATION;
struct SET_INFORMATION {
NDIS_OID Oid;
PVOID InformationBuffer;
UINT InformationBufferLength;
UINT BytesRead;
UINT BytesNeeded;
} SET_INFORMATION;
} DATA;
} NDIS_REQUEST, *PNDIS_REQUEST;
|
NDIS_REQUEST´Â NdisRequest ÇÔ¼ö¿¡ ´ëÇÑ È£ÃâÀ» À§ÇØ ÇÁ·ÎÅäÄÝ È¤Àº NDIS¿¡ ÀÇÇØ ¼³Á¤µÈ ÆÐŶÀ» ÁöÁ¤ÇÑ´Ù. NDIS´Â ¾Æ·¡ µå¶óÀ̹öÀÇ MiniportQueryInformation ȤÀº MiniportSetInformation ÇÔ¼öµé¿¡ ÀÌ·¯ÇÑ ¿ä±¸µéÀ» Á¦ÃâÇÑ´Ù.
¸â¹ö
- MacReserved[16]
- ¾Æ·¡ µå¶óÀ̹ö¿¡ ÀÇÇØ »ç¿ëÀÌ ¿¹¾àµÈ 16¹ÙÀÌÆ® ¿µ¿ªÀ» ÁöÁ¤ÇÑ´Ù.
- RequestType
- ´ÙÀ½°ú °°Àº Çϳª·Î ¿ä±¸ ŸÀÔÀ» ÁöÁ¤ÇÑ´Ù:
- NdisRequestQueryInformation
- Äõ¸® Á¤º¸ ¿ä±¸¸¦ ÁöÁ¤ÇÑ´Ù. NDIS´Â ±×·¯ÇÑ ¿ä±¸¸¦ ¾Æ·¡ µå¶óÀ̹öÀÇ MiniportQueryInformation ÇÔ¼ö¿¡ Æ÷¿öµåÇÑ´Ù.
- NdisRequestSetInformation
- ¼³Á¤ Á¤º¸ ¿ä±¸¸¦ ÁöÁ¤ÇÑ´Ù. NDIS´Â ¾Æ·¡ µå¶óÀ̹öÀÇ MiniportSetInformation ÇÔ¼ö¿¡ ´ëÇÑ ¿ä±¸¸¦ Æ÷¿öµåÇÑ´Ù.
- NdisRequestQueryStatistics
- Äõ¸® Åë°è ¿ä±¸¸¦ ÁöÁ¤ÇÑ´Ù. ´ëºÎºÐÀÇ Åë°è Äõ¸®¿¡¼, NDIS´Â ±× ÀÚü·Î ¿ä±¸¸¦ ¸¸Á·ÇÑ´Ù. ±×·¸Áö ¾ÊÀ¸¸é, NDIS´Â ±×·¯ÇÑ ¿ä±¸¸¦ ¾Æ·¡ µå¶óÀ̹öÀÇ MiniportQueryInformation ÇÔ¼ö·Î Æ÷¿öµåÇÑ´Ù. ÀÌ·¯ÇÑŸÀÔÀÇ ¿ä±¸´Â ÇÁ·ÎÅäÄÝ µå¶óÀ̹ö°¡ °áÄÚ ¾Æ´Ñ »ç¿ëÀÚ ¸ðµå ¾îÇø®ÄÉÀ̼ǿ¡¼ ¿Ô´Ù.
¼±Çà°ªµéÀÇ ¾î¶² °ªÀ» À§ÇØ, Oid ¸â¹ö³»¿¡ ÁöÁ¤µÈ OID_XXX´Â ¿ä±¸µÈ ¿¬»êÀÇ Å¸ÀÔÀ¸·Î ȣȯµÉ °ÍÀÌ´Ù.
- NdisRequestOpen
- ÀÌ·¯ÇÑ Å¸ÀÔÀº Æó±âµÇ¾ú´Ù. ÇÁ·ÎÅäÄÝ µå¶óÀ̹ö´Â ±× ´ë½Å¿¡ NdisOpenAdapter ÇÔ¼ö¸¦ È£ÃâÇÑ´Ù.
- NdisRequestClose
- ÀÌ Å¸ÀÔÀº Æó±âµÇ¾ú´Ù. ÇÁ·ÎÅäÄÝ µå¶óÀ̹ö´Â ±× ´ë½Å¿¡ NdisCloseAdapter ÇÔ¼ö¸¦ È£ÃâÇÑ´Ù.
- NdisRequestSend
- ÀÌ Å¸ÀÔÀº Æó±âµÇ¾ú´Ù. ÇÁ·ÎÅäÄÝ µå¶óÀ̹ö´Â NdisSend ȤÀº NdisSendPackets ÇÔ¼ö¸¦ È£ÃâÇÑ´Ù.
- NdisRequestTransferData
- ÀÌ Å¸ÀÔÀº Æó±âµÇ¾ú´Ù. ÇÁ·ÎÅäÄÝ µå¶óÀ̹ö´Â NdisTransferData ÇÔ¼ö¸¦ È£ÃâÇÑ´Ù.
- NdisRequestReset
- ÀÌ Å¸ÀÔÀº Æó±âµÇ¾ú´Ù. ÇÁ·ÎÅäÄÝ µå¶óÀ̹ö´Â NdisReset ÇÔ¼ö¸¦ È£ÃâÇÑ´Ù.
- NdisRequestGeneric1
- NIC µå¶óÀ̹ö ƯÁ¤ ¿ä±¸¸¦ ÁöÁ¤ÇÑ´Ù.
- NdisRequestGeneric2
- NIC µå¶óÀ̹ö ƯÁ¤ ¿ä±¸¸¦ ÁöÁ¤ÇÑ´Ù.
- NdisRequestGeneric3
- NIC µå¶óÀ̹ö ƯÁ¤ ¿ä±¸¸¦ ÁöÁ¤ÇÑ´Ù.
- NidsRequestGeneric4
- NIC µå¶óÀ̹ö ƯÁ¤ ¿ä±¸¸¦ ÁöÁ¤ÇÑ´Ù.
- Oid
- ¿ä±¸µÈ ¿¬»êÀÇ °´Ã¼ Áö½ÃÀÚ¸¦ ÁöÁ¤ÇÑ´Ù.
ÀÌ °ªÀº OID_XXX ÄÚµåÀÌ´Ù.
- InformationBuffer
- ¾Æ·¡ µå¶óÀ̹ö ȤÀº NDIS´Â ¾Æ·¡ µå¶óÀ̹ö°¡ ¼³Á¤µéÀ» À§ÇÑ È£ÃâÀÚ Á¦°ø Á¤º¸¸¦ Àоî¿À´Â °ÍÀ¸·ÎºÎÅÍ È¤Àº Äõ¸®¸¦ À§ÇÑ ¿ä±¸µÈ Á¤º¸¸¦ ¸®ÅÏÇÏ´Â ¹öÆÛ¸¦ °¡¸®Å²´Ù.
- InformationBufferLength
- InformationBufferÀÎ ¹öÆÛÀÇ ¹ÙÀÌÆ® Å©±â¸¦ ÁöÁ¤ÇÑ´Ù. Oid °ªÀº ÀÌ ¸â¹ö¿¡ Àû´çÇÑ °ªÀ» °áÁ¤ÇÑ´Ù.
- BytesWritten
- ¾Æ·¡ µå¶óÀ̹ö ȤÀº NDIS°¡ Äõ¸® Á¤º¸ ¿ä±¸µéÀ» À§ÇÑ InfomationBufferÀÎ ¹öÆÛ·Î Àü¼ÛÇÏ´Â ¹ÙÀÌÆ® ¼ö¸¦ ÁöÁ¤ÇÑ´Ù. ¸¸¾à NdisRequest ÇÔ¼ö°¡ NDIS_STATUS_INVALID_LENGTH¸¦ ¸®ÅÏÇϸé, ÀÌ ¸â¹öÀÇ °ªÀº Àǹ̰¡ ¾ø´Ù.
- BytesNeeded
- Äõ¸® Á¤º¸¸¦ ¸®ÅÏÇϰųª ȤÀº ÁÖ¾îÁø OID_XXX Äڵ忡 ÀÇÇØ ¿ä±¸µÈ ¼³Á¤ ¿¬»êÀ» ½ÇÇàÇϱâ À§ÇØ ÇÊ¿äÇÑ ¹ÙÀÌÆ® ¼ö¸¦ ÁöÁ¤ÇÑ´Ù.
¸¸¾à NdisRequest ÇÔ¼ö°¡ NDIS_STATUS_SUCCESS¸¦ ¸®ÅÏÇϸé, ÀÌ ¸â¹öÀÇ °ªÀº Àǹ̰¡ ¾ø´Ù. ¸¸¾à InformationBufferLength´Â Äõ¸®¿¡¼ ÁÖ¾îÁø OID_XXX °ªÀÌ ³Ê¹« °ª´Ù¸é, ÀÌ ¸â¹ö´Â ¾ó¸¶³ª Å« ¹öÆÛ°¡ ÀÌ ¿ä±¸¸¦ ¸¸Á·ÇÏ´Â µ¥ ÇÊ¿äÇÑÁö¸¦ °¡¸®Å²´Ù. ¸¸¾à InformationBufferÀÎ ¹öÆÛ°¡ ¼³Á¤¿¡¼ ÁÖ¾îÁø OID_XXX ¸¦ À§ÇØ ÃæºÐÇÑ µ¥ÀÌÅ͸¦ Æ÷ÇÔÇÏÁö ¾Ê´Â´Ù¸é, ÀÌ ¸â¹ö´Â ¾ó¸¶³ª ¸¹Àº µ¥ÀÌÅͰ¡ ¿ä±¸µÇ´ÂÁö¸¦ °¡¸®Å²´Ù.
ÁÖ¼®
ÇÁ·ÎÅäÄÝÀº InformationBufferÀÎ ¹öÆÛ¸¦ À§ÇÑ ±×¸®°í NDIS_REQUEST ÆÐŶ ±× ÀÚü¸¦ À§ÇØ ºñÆäÀÌÁöÈµÈ ¸Þ¸ð¸®¸¦ ÇÒ´çÇØ¾ß ÇÑ´Ù.
ÆäÀÌÁöÈµÈ ¸Þ¸ð¸®·ÎºÎÅÍ ÇÒ´çµÈ ÆÐŶ ȤÀº ¹öÆÛ¸¦ Àü´ÞÇÏ´Â °ÍÀº ¾Æ·¡ µå¶óÀ̹ö°¡ ¿ä±¸µÈ ¿¬»êÀ» ½ÇÇàÇϱâ À§ÇØ IRQL DISPATCH_LEVEL¿¡¼ ½ÇÇàÇϱ⠶§¹®¿¡ Ä¡¸íÀûÀÎ ÆäÀÌÁö ÆúÆ®µéÀ» ¾ß±âÇÒ ¼ö ÀÖ´Ù.
NDIS_REQUEST ±¸Á¶Ã¼´Â ÇÁ·ÎÅäÄÝ µå¶óÀ̹ö°¡ ¾Æ·¡ µå¶óÀ̹ö¿¡ ¿ä±¸ÇÒ ¼ö ÀÖ´Â °¢ ŸÀÔÀÇ ¿¬»êÀ» À§ÇÑ DATA ±¸Á¶Ã¼¸¦ Æ÷ÇÔÇÑ´Ù. NdisRequest ÇÔ¼ö¸¦ È£ÃâÇϱâ Àü¿¡, ÇÁ·ÎÅäÄÝÀº Oid ¸â¹ö¸¦ ÁöÁ¤ÇÏ´Â Äõ¸® ȤÀº ¼³Á¤ ¿¬»êÀ» ³ªÅ¸³»´Â ¼ºê±¸Á¶Ã¼ÀÇ °ü°èµÈ ¸â¹öµéÀ» ä¿î´Ù. NDIS ȤÀº ¾Æ·¡ µå¶óÀ̹ö¹ö´Â È£ÃâÀÚ¿¡°Ô Á¦¾î¸¦ ¸®ÅÏÇϱâ Àü¿¡ ³²¾ÆÀÖ´Â ¸â¹öµéÀ» ä¿î´Ù. OID_XXX ÄÚµåµé¿¡ ´ëÇÑ ´õ ¸¹Àº Á¤º¸¿Í ¾î´À ½Ã½ºÅÛ Á¤ÀÇ OIDµéÀÌ Äõ¸®, Åë°è Äõ¸®µé ȤÀº ¼³Á¤ Äõ¸®µéÀ» Çã¿ëÇÏ´Â °¡¿¡ ´ëÇÑ ´õ ÀÚ¼¼ÇÑ Á¤º¸´Â Part 2¸¦ ºÁ¶ó.
NdisRequestGenerics ŸÀÔµéÀº ±×µé ÀÚ½ÅÀÇ ³»ºÎ ¿ä±¸µéÀ» ¸¸µå´Â NIC µå¶óÀ̹öµéÀ» À§ÇØ ÀÌ¿ëÇÒ¼ö ÀÖ´Ù. ¿ä±¸µÈ ¿¬»êÀ» ÀεðÄÉÀÌÆ®Çϱâ À§ÇØ, NIC µå¶óÀ̹ö´Â ³»ºÎ º¯¼ö¸¦ ÀÌ·¯ÇÑ Å¸ÀÔµéÀÇ Çϳª·Î ¼³Á¤ÇÑ´Ù.
|