ÅëÇÕ°Ë»ö
¡¤ ¸¶À»¼­ºñ½º¶õ?  ¡¤ Æ÷·³¸¶À»  ¡¤ ÀϹݸ¶À»  ¡¤ Å׸¶¸¶À»  ¡¤ ¸¶À»·©Å·  ¡¤ Ȱµ¿¿Õ
¡¤ µ¦½ºÆÛÆ®¶õ?  ¡¤ TECBOX   ¡¤ PRSBOX   ¡¤ ÀÌ¿ë¾È³»  
¡¤ DEXTÁ¦Ç°±º  ¡¤ ³»ºÎÅëÁ¦½Ã½ºÅÛ  ¡¤ ¼Ö·ç¼Çº£ÀÌ  ¡¤ S/W & ESD ÄÄÆ÷³ÍÆ®
¡¤ ¾ÆÀÌÆ¼Æ®·£µå  ¡¤ Á¦ÈÞ¹®ÀÇ  ¡¤ Event Mall
¡¤ ImDev-¸®Äí¸£ÆÃ  ¡¤ ImDev-¾Æ¿ô¼Ò½Ì  ¡¤ ´å³ÝÄÁ¼³ÆÃ
¡¤ IT °úÁ¤  ¡¤ DOT Zone
¡¤ LiveSeminar  ¡¤ LiveConference
[Windows Driver Model] Æ÷·³ ¸¶À» ÀÔ´Ï´Ù.
  ¸¶À»µî±Þ Windows Driver Model   ÀÌ ¸¶À»Àº Æ÷·³¸¶À» ÀÔ´Ï´ÙÀÌ ¸¶À»Àº ÀÚÀ¯°¡ÀÔÁ¦ ¸¶À» ÀÔ´Ï´Ù ¸¶À»¼Ò°³ ÆäÀÌÁö·Î À̵¿ ÀüÀÔ½Åû
¸¶À»ÃÌÀåÃÌÀå Á¶¼º¹è ÁֹΠ566 since 2006-12-29
¿ì¸®¸¶À» °øÁö»çÇ×
Áú¹®&´äº¯
°­ÁÂ&ÆÁ
ÀÚÀ¯°Ô½ÃÆÇ
ÀÚ·á½Ç
¾Ù¹ü
°³ÀÎ°Ô½ÃÆÇ
¸¶À» °Ô½ÃÆÇ
µî·ÏµÈ ¸¶À» °Ô½ÃÆÇÀÌ
¾ø½À´Ï´Ù.
¶ûµ¥ºê °Ô½ÃÆÇ
Ä®·³ °Ô½ÃÆÇ
°³¹ßÀÚ °íÃæ»ó´ã
Dev Talk
ÀÚÀ¯Åä·Ð¹æ
º­·è½ÃÀå
À糪¹Ì ¿ì½º°³
  ITÀ̾߱â
  ³ë¶¥¿£Áö´Ï¾îÀÇ ³ëÆ®
  °í°´Áö¿ø °Ô½ÃÆÇ
¸¶ÀÌ µ¥ºêÇǾÆ
 ³ªÀÇ e-Money ³»¿ª
 È°µ¿¿Õ My Page
 ½ºÅ©·¦ÇÑ °Ô½Ã±Ûº¸±â
 ÂÊÁö°ü¸®
 Áּҷϰü¸®
 ÀÏÁ¤°ü¸®

 °­ÁÂ&ÆÁ
 Filter Driver¿Í Åë½ÅÇϱ⠠| Other 2007-07-03 ¿ÀÀü 8:47:33
Á¶¼º¹è (gunner98)  Á¶¼º¹è´Ô²² ¸Þ½ÃÁö º¸³»±âÁ¶¼º¹è´ÔÀ» ³» ÁÖ¼Ò·Ï¿¡ Ãß°¡ÇÕ´Ï´Ù.Á¶¼º¹è´ÔÀÇ °³ÀÎ°Ô½ÃÆÇ °¡±â ¹øÈ£: 106  / ÀÐÀ½:1,574

¿ì¸®´Â ƯÁ¤ ¸ñÀû¿¡ ÀÇÇØ¼­ Filter Driver¸¦ ÅëÇØ¼­ ¿À°í °¡´Â µ¥ÀÌÅ͸¦ ÇÊÅ͸µÀ» ÇÕ´Ï´Ù.

ÀÌ Filter DriverÀÇ ¿ªÇÒÀº ¸ñÀû¿¡ µû¶ó¼­ Upper Filter Driver, Lower Filter Driver·Î ³ª´µ°Ô

µÇ´Âµ¥ ÀÌ ºÎºÐ¿¡ ´ëÇØ¼­´Â ±ÛÀÇ ¸ñÀû°ú °ü·ÃÀÌ ¾øÀ¸¹Ç·Î »ý·«À» ÇÕ´Ï´Ù.

 

Áö±ÝºÎÅÍ ¼Ò°³ÇÒ·Á°í ÇÏ´Â °ÍÀº ÀÌ Filter Driver¿Í Åë½ÅÇϱâ ÀÔ´Ï´Ù.

¿ì¸®°¡ À¯¿ëÇÏ°Ô »ç¿ëÇϰí ÀÖ´Â Filter Driver¿Í Åë½ÅÀ» Çϱâ À§Çؼ­´Â º°µµÀÇ Åë½ÅÀ» ´ã´ç

ÇÏ°Ô µÇ´Â Device Object¸¦ »ý¼ºÇØ¾ß ÇÕ´Ï´Ù. ±×·¡¼­ ÀÌ Åë½Å¿ë Device Object¸¦ ÅëÇØ¼­

Filter Driver¿Í Åë½ÅÀ» ÇÏ°Ô µË´Ï´Ù.

 

ÀϹÝÀûÀÎ Filter DriverÀÇ ±¸Á¶¸¦ º¸¸é, º¸Åë ±×³É ¾Æ·¡·Î ¸ðµç IRP¸¦ Èê·Á º¸³À´Ï´Ù.

¿ì¸®°¡ Åë½Å¿ë Device Object¸¦ ¸¸µå´Â ½ÃÁ¡Àº ÀϹÝÀûÀ¸·Î "IRP_MN_START_DEVICE" Minor Function Code°¡ ³»·Á¿Ã ¶§,

ÇØ´ç IRP µî·ÏÇÑ ¿Ï·á ·çƾÀÌ È£ÃâµÇ´Â ½ÃÁ¡¿¡ Åë½Å¿ë Device Object¸¦ »ý¼ºÇÕ´Ï´Ù.

 

[ Sample Code ]

switch (irpStack->MinorFunction)

{
    case IRP_MN_START_DEVICE:
        IoCopyCurrentIrpStackLocationToNext(Irp);
        IoSetCompletionRoutine(Irp,
                               (PIO_COMPLETION_ROUTINE) CompletionRoutine,
                               NULL,
                               TRUE,
                               TRUE,
                               TRUE);
        return IoCallDriver(deviceExtension->NextLowerDriver, Irp);

}

NTSTATUS CompletionRoutine( IN PDEVICE_OBJECT   DeviceObject,
                                                 IN PIRP                      Irp,
                                                 IN PVOID                    Context )

{

     ....... »ý ·« .......

 

     // Åë½Å¿ë Device Object »ý¼º.

     status = IoCreateDevice( DeviceObject->DriverObject,
                                            sizeof(CONTROL_DEVICE_EXTENSION),
                                            &ntDeviceName,
                                            FILE_DEVICE_UNKNOWN,
                                            FILE_DEVICE_SECURE_OPEN,
                                            FALSE,
                                            &ControlDeviceObject);    // Åë½Å¿ë Device Object

 

    ....... »ý ·« .......

}

¿ì¸®´Â ÀÌÁ¦ Filter Driver¿Í Åë½ÅÀº ControlDeviceObject ¸¦ ÅëÇØ¼­ ÇÒ ¼ö ÀÖ½À´Ï´Ù.

¿©±â¼­ ÇÑ °¡Áö ÁÖÀÇÇÒ Á¡Àº, ControlDeviceObject¸¦ ÅëÇØ¼­ Åë½ÅÀ» ÇÒ ¶§ ¿ø·¡ Filter Driver

ÀÇ Device Object¿Í ControlDeviceObject¸¦ ±¸ºÐÇØ¼­ 󸮸¦ ÇØ ÁÖ¾î¾ß ÇÕ´Ï´Ù.

 

¿¹¸¦ µé¸é, IOCTL¸¦ ÀÌ¿ëÇØ¼­ Filter Driver¸¦ Åë½ÅÀ» ÇϰíÀÚ ÇÒ ¶§, ¾Æ·¡¿Í °°ÀÌ Ã³¸®¸¦

ÇØ ÁÖ¾î¾ß ÇÕ´Ï´Ù.

 

[ Sample Code ]

// ÇöÀç Device Object°¡ ControlDeviceObject°¡ ¾Æ´Ï¸é, ¾Æ·¡·Î PassÇÔ.

if(DeviceObject != ControlDeviceObject)

{
      return FilterPass(DeviceObject, Irp);    
}

 

....... »ý ·« .......

 

// ÇöÀç Deviceobject°¡ ControlDeviceObject¶ó¸é..

// ÇØ´ç µ¿ÀÛ Ã³¸® ÈÄ, ÇØ´ç IRP ¿Ï·á ½ÃÅ´.

ÄÚ¸àÆ®¾²±â
  ÁÁÀ½   ³î¶÷   ±Ã±Ý   È­³²   ½½ÇÄ   ÃÖ°í   ħ¹¬   ½Ã¹«·è   ºÎ²ô·³   ³­°¨
* ÄÚ¸àÆ®´Â 500ÀÚ À̳»(¶ç¾î¾²±â Æ÷ÇÔ)·Î Àû¾îÁÖ¼¼¿ä.
¸ñ·Ï º¸±â   Áö±Ý º¸°í °è½Ã´Â ±ÛÀ» ȸ¿ø´ÔÀÇ my Mblog >> ½ºÅ©·¦¿¡ ³Ö¾îµÎ°í ´ÙÀ½¿¡ ¹Ù·Î º¸½Ç ¼ö ÀÖ½À´Ï´Ù.  

 µ¦½ºÆÛÆ®(dExpert)
9,000¿ø
10,000¿ø
15,000¿ø
10,000¿ø
15,000¿ø
15,000¿ø
13,000¿ø
5,000¿ø
3,000¿ø
27,000¿ø
9,000¿ø
15,000¿ø
30,000¿ø
9,000¿ø
ȸ»ç¼Ò°³  |   °³ÀÎÁ¤º¸Ãë±Þ¹æÄ§  |  Á¦ÈÞ¹®ÀÇ  |   ±¤°í¹®ÀÇ  |   E-Mail ¹«´Ü¼öÁý°ÅºÎ  |   °í°´Áö¿ø  |   ÀÌ¿ë¾È³»  |   ¼¼±Ý°è»ê¼­
°øÁ¤°Å·¡À§¿øÈ¸ °í½Ã Á¦ 2000-1È£¿¡ µû¸¥ »ç¾÷ÀÚµî·Ï¹øÈ£ ¾È³»: 220-81-90008 / ´ëÇ¥: È«¿µÁØ
¼­¿ï½Ã °­³²±¸ ¿ª»ïµ¿ 662-18 °­³²ÅÚ·¹ÇǾƺôµù 9Ãþ / TEL. 02_511_4824 / FAX. 02_511_4823
Copyright ¨Ï (ÁÖ) µ¥ºêÇǾÆ. All rights reserved.