{"id":192,"date":"2010-04-18T00:24:54","date_gmt":"2010-04-18T09:24:54","guid":{"rendered":"\/blog\/?p=192"},"modified":"2023-09-21T09:39:12","modified_gmt":"2023-09-21T00:39:12","slug":"ddk-dispatch_level-%ec%97%90%ec%84%9c-paging-%ec%9d%b4-%eb%b6%88%ea%b0%80%eb%8a%a5%ed%95%9c-%ec%9d%b4%ec%9c%a0","status":"publish","type":"post","link":"https:\/\/hasu0707.duckdns.org\/blog\/?p=192","title":{"rendered":"[DDK] DISPATCH_LEVEL \uc5d0\uc11c Paging \uc774 \ubd88\uac00\ub2a5\ud55c \uc774\uc720"},"content":{"rendered":"\n<div class=\"article_post\">\uc81c\uc77c \ucc98\uc74c\uc5d0 \ucc45\uc744 \uc77d\uc73c\uba74\uc11c,<br \/><br \/>\uc65c DISPATCH_LEVEL\uc5d0\uc11c \ud398\uc774\uc9d5\uc774 \n\ubd88\uac00\ub2a5\ud560\uae4c?<br \/><br \/>\ucc45\uc5d0\uc11c\ub294 \ubaa8\ub450 \ub2f9\uc5f0\ud558\ub2e4\ub294 \ub4ef\uc774 non-paged \uba54\ubaa8\ub9ac\uc5d0 \uc788\uc5b4\uc57c \ud55c\ub2e4\uace0 \ud588\ub2e4.<br \/><br \/>\uadf8\ub9ac\uace0\ub294 \uc804\uc5ed\ubcc0\uc218\uc5d0 \ub3d9\uae30\ud654 \n\uac1d\uccb4\ub97c \uc120\uc5b8\ud588\ub2e4.<br \/><br \/>\ucc38 \uc54c\uc3ed\ub2ec\uc3ed\ud588\ub2e4. \uc804\uc5ed\ubcc0\uc218 \uc601\uc5ed\uc774 \uc65c \ud398\uc774\uc9d5\uc774 \uc548\ub418\ub294\uac00,<br \/><br \/>\uadf8\ub9ac\uace0 \uc65c DISPATCH_LEVEL\uc5d0\uc11c\ub294 \n\ud398\uc774\uc9d5\uc774 \ud5c8\uc6a9 \uc548\ub418\ub294\uac00?<br \/><br \/>\uc774\uc81c \uad81\uae08\uc99d\uc774 \ud480\ub9b0 \uac83 \uac19\ub2e4.<br \/><br \/>\ub2e4\uc74c \ucf54\ub4dc\ub97c \ubcf4\uc790. \uc774\ubcd1\uc624\uc528\uc758 \"\uc708\ub3c4\uc6b0 \ud30c\uc77c \uc2dc\uc2a4\ud15c\" \ucc45\uc5d0 \uc788\ub294 \n\ucf54\ub4dc\uc774\ub2e4.<br \/><br \/>\n<div class=\"dp-highlighter\">\n<div class=\"bar\">\n<div class=\"tools\"><a class=\"con_link\" href=\"http:\/\/ssmhz.tistory.com\/category\/Kernel%20%26%26%20DDK?page=2#\" target=\"_blank\" rel=\"noopener\"><font color=\"#a0a0a0\">view plain<\/font><\/a><a class=\"con_link\" href=\"http:\/\/ssmhz.tistory.com\/category\/Kernel%20%26%26%20DDK?page=2#\" target=\"_blank\" _cssquery_uid=\"72\" rel=\"noopener\"><font color=\"#a0a0a0\">copy to clipboard<\/font><\/a><a class=\"con_link\" href=\"http:\/\/ssmhz.tistory.com\/category\/Kernel%20%26%26%20DDK?page=2#\" target=\"_blank\" _cssquery_uid=\"73\" rel=\"noopener\"><font color=\"#a0a0a0\">print<\/font><\/a><a class=\"con_link\" href=\"http:\/\/ssmhz.tistory.com\/category\/Kernel%20%26%26%20DDK?page=2#\" target=\"_blank\" rel=\"noopener\"><font color=\"#a0a0a0\">?<\/font><\/a><\/div><\/div>\n<ol class=\"dp-cpp\"><li class=\"alt\"><span><span class=\"comment\"><font color=\"#008200\">\/\/\uc2a4\ud540 \ub85d\uc744 \uc704\ud55c \ubcc0\uc218\ub97c \uc804\uc5ed \ubcc0\uc218\ub85c \uc120\uc5b8\ud55c\ub2e4. <\/font><\/span><span>&nbsp; <\/span><\/span> \n<\/li><li><span>KSPIN_LOCK &nbsp; &nbsp; CountMutex; &nbsp; <\/span> \n<\/li><li class=\"alt\"><span>&nbsp; <\/span> \n<\/li><li><span>... &nbsp; <\/span> \n<\/li><li class=\"alt\"><span>&nbsp; <\/span> \n<\/li><li><span>NTSTATUS &nbsp; <\/span> \n<\/li><li class=\"alt\"><span>DriverEntry( &nbsp; <\/span> \n<\/li><li><span>&nbsp; &nbsp; IN PDRIVER_OBJECT DriverObject, &nbsp; <\/span> \n<\/li><li class=\"alt\"><span>&nbsp; &nbsp; IN PUNICODE_STRING RegistryPath &nbsp; <\/span> \n<\/li><li><span>&nbsp; &nbsp; ) &nbsp; <\/span> \n<\/li><li class=\"alt\"><span>{ &nbsp; <\/span> \n<\/li><li><span>&nbsp; &nbsp; .... &nbsp; <\/span> \n<\/li><li class=\"alt\"><span>&nbsp; &nbsp; <\/span><span class=\"comment\"><font color=\"#008200\">\/\/ \uc2a4\ud540\ub85d\uc744 \ucd08\uae30\ud654 \ud55c\ub2e4. <\/font><\/span><span>&nbsp; <\/span> \n<\/li><li><span class=\"preprocessor\"><font color=\"#808080\">&nbsp; &nbsp; #if DBG \n<\/font><\/span><span>&nbsp; <\/span> \n<\/li><li class=\"alt\"><span>&nbsp; &nbsp; &nbsp; &nbsp; KeInitializeSpinLock( &amp;CountMutex ); &nbsp; <\/span> \n<\/li><li><span class=\"preprocessor\"><font color=\"#808080\">&nbsp; &nbsp; #endif \n<\/font><\/span><span>&nbsp; <\/span> \n<\/li><li class=\"alt\"><span>&nbsp; <\/span> \n<\/li><li><span>&nbsp; &nbsp; .... &nbsp; <\/span> \n<\/li><li class=\"alt\"><span>&nbsp; <\/span> \n<\/li><li><span>} &nbsp;<\/span><\/li><\/ol><\/div>&lt;TEXTAREA class=\"cpp\" style=\"DISPLAY: \nnone\" name=code rows=10 cols=60&gt;\/\/\uc2a4\ud540 \ub85d\uc744 \uc704\ud55c \ubcc0\uc218\ub97c \uc804\uc5ed \ubcc0\uc218\ub85c \uc120\uc5b8\ud55c\ub2e4. KSPIN_LOCK \nCountMutex; ... NTSTATUS DriverEntry( IN PDRIVER_OBJECT DriverObject, IN \nPUNICODE_STRING RegistryPath ) { .... \/\/ \uc2a4\ud540\ub85d\uc744 \ucd08\uae30\ud654 \ud55c\ub2e4. #if DBG \nKeInitializeSpinLock( &amp;CountMutex ); #endif .... } &lt;\/TEXTAREA&gt; \n<br \/><br \/>\uadf8\ub9ac\uace0 \ucc45\uc5d0 \uc801\ud600\uc788\ub294 \ub0b4\uc6a9\uc774\ub2e4.<br \/><br \/>\" <em>\uc775\uc2a4\ud050\ud2f0\ube0c \uc2a4\ud540 \ub85d\uc758 \ud2b9\uc9d5\uc744 \uc815\ub9ac\ud558\uba74 \ub2e4\uc74c\uacfc \n\uac19\ub2e4.<br \/><br \/><\/em>&nbsp;\u25cf <em>\uc2a4\ud540 \ub85d\uacfc \uad00\ub828\ub41c IRQL\uc740 DISPATCHB_LEVEL IRQL\uc774\ub2e4.<br \/>&nbsp;\u25cf \n<\/em><em><font color=\"#ff0000\">\uc2a4\ud540 \ub85d\uc744 \uc0ac\uc6a9\ud558\uae30 \uc704\ud574\uc11c \ub4dc\ub77c\uc774\ubc84\ub294 \uc2a4\ud540 \ub85d\uc744 \ud398\uc774\uc9d5 \ubd88\uac00\ub2a5\ud55c \uc601\uc5ed\uc5d0 \ud560\ub2f9\ud574\uc57c\ub9cc \n\ud55c\ub2e4.<br \/><\/font>&nbsp;\u25cf KeInitializeSpinLock() \ud568\uc218\ub97c \uc0ac\uc6a9\ud558\uc5ec \uc2a4\ud540 \ub85d\uc744 \n\ucd08\uae30\ud654\ud55c\ub2e4.<br \/><\/em>\"<br \/>&nbsp;\uc804\uc5ed\ubcc0\uc218\ub294 \ud398\uc774\uc9d5\uc774 \ubd88\uac00\ub2a5\ud55c \uc601\uc5ed\uc774\ub2e4.<br \/><br \/>\uc774\ub7f0 \uacb0\ub860\uc774 \ub098\uac8c \ub41c\ub2e4.<br \/><br \/>&nbsp;\ud558\uc9c0\ub9cc \uc54c\uc544\ubcf8 \n\uacb0\uacfc, \uc804\uc5ed\ubcc0\uc218 \uc601\uc5ed\ub3c4 \ub370\uc774\ud130\uc139\uc158\uc5d0 \uc62c\ub77c\uac00\uc9c0\ub9cc,<br \/><br \/>&nbsp; &nbsp; &nbsp; &nbsp; <font color=\"#ff0000\"><strong>\ud398\uc774\uc9d5\uc774 \ub420 \uc218 \n\uc788\ub2e4.<br \/><\/strong><\/font><br \/>&nbsp;\ub77c\ub294 \uacb0\ub860\uc774 \ub098\uc654\ub2e4. <br \/><br \/>&nbsp;\ud558\uc9c0\ub9cc, \ub4dc\ub77c\uc774\ubc84\ub294 \ucee4\ub110\uc5d0\uc11c \uc218\ud589\ub418\uae30 \ub54c\ubb38\uc5d0 \uc660\ub9cc\ud558\uba74 \n\uc804\uc5ed\ubcc0\uc218\uac00 \ud398\uc774\uc9d5 \ub418\uc9c0 \uc54a\ub294\ub2e4.<br \/><br \/>&nbsp;\ud655\uc2e4\ud55c non-paged \uc601\uc5ed\uc5d0 \uc120\uc5b8\ud558\ub294 \ubc29\ubc95\uc740 DEVICE_EXTENSION\uc5d0 \uc788\ub2e4.<br \/>\n<div class=\"dp-highlighter\">\n<div class=\"bar\">\n<div class=\"tools\">&nbsp;<\/div><\/div>\n<ol class=\"dp-cpp\"><li class=\"alt\"><span><span class=\"keyword\"><strong><font color=\"#006699\">typedef<\/font><\/strong><\/span><span>&nbsp;<\/span><span class=\"keyword\"><strong><font color=\"#006699\">struct<\/font><\/strong><\/span><span>&nbsp;_DEVICE_EXTENSION { \n &nbsp;<\/span><\/span> \n<\/li><li><span>&nbsp; &nbsp; ... &nbsp; <\/span> \n<\/li><li class=\"alt\"><span>&nbsp; &nbsp; KSPIN_LOCK QLock; &nbsp; <\/span> \n<\/li><li><span>} DEVICE_EXTENSION, *PDEVICE_EXTENSION; &nbsp; <\/span> \n<\/li><li class=\"alt\"><span>&nbsp; <\/span> \n<\/li><li><span>... &nbsp; <\/span> \n<\/li><li class=\"alt\"><span>&nbsp; <\/span> \n<\/li><li><span>NTSTATUS &nbsp; <\/span> \n<\/li><li class=\"alt\"><span>AddDevice( &nbsp; <\/span> \n<\/li><li><span>&nbsp; &nbsp; PDRIVER_OBJECT pDriverObject, &nbsp; <\/span> \n<\/li><li class=\"alt\"><span>&nbsp; &nbsp; PDEVICE_OBJECT pPhysicalDeviceObject &nbsp; <\/span> \n<\/li><li><span>&nbsp; &nbsp; ) &nbsp; <\/span> \n<\/li><li class=\"alt\"><span>{ &nbsp; <\/span> \n<\/li><li><span>&nbsp; &nbsp; ... &nbsp; <\/span> \n<\/li><li class=\"alt\"><span>&nbsp; &nbsp; PDEVICE_EXTENSION pdx =&nbsp;(PDEVICE_EXTENSION)pPhysicalDevcieObejct-&gt;DeviceExtension; \n &nbsp;<\/span> \n<\/li><li><span>&nbsp; &nbsp;&nbsp; &nbsp; <\/span> \n<\/li><li class=\"alt\"><span>&nbsp; &nbsp; KeInitializeSpinLock(&amp;pdx-&gt;QLock); &nbsp; <\/span> \n<\/li><li><span>&nbsp; <\/span> \n<\/li><li class=\"alt\"><span>&nbsp; &nbsp; ... &nbsp; <\/span> \n<\/li><li><span>&nbsp; <\/span> \n<\/li><li class=\"alt\"><span>} &nbsp;<\/span><\/li><\/ol><\/div>&lt;TEXTAREA class=\"cpp\" \nstyle=\"DISPLAY: none\" name=code rows=10 cols=60&gt;typedef struct \n_DEVICE_EXTENSION { ... KSPIN_LOCK QLock; } DEVICE_EXTENSION, \n*PDEVICE_EXTENSION; ... NTSTATUS AddDevice( PDRIVER_OBJECT pDriverObject, \nPDEVICE_OBJECT pPhysicalDeviceObject ) { ... PDEVICE_EXTENSION pdx = \n(PDEVICE_EXTENSION)pPhysicalDevcieObejct-&gt;DeviceExtension; \nKeInitializeSpinLock(&amp;pdx-&gt;QLock); ... } &lt;\/TEXTAREA&gt; <br \/><br \/>\uc774\ub7f0 \n\uac83\uc774\ub2e4. <br \/><br \/>&nbsp;\uacb0\ub860\uc744 \uc54c\uc544\ubcf4\uba74, \uc5b4\ub514\uc5d0\uc11c\ub4e0 \ub4dc\ub77c\uc774\ubc84\uac00 \uc774\ubca4\ud2b8 \uac1d\uccb4\ub97c \uc0dd\uc131\ud558\ub294 \uc0ac\uc6a9 \uc608\ub97c \ud754\ud558\uac8c \ubcfc \uc218 \uc788\uc744\ud150\ub370<br \/><br \/>\ub9cc\uc57d \n\uc2a4\uc640\ud551\ub418\uc5b4 \ubc84\ub9ac\uba74 ( SWAP-IN, SWAP-OUT\uc744 \uc758\ubbf8\ud55c\ub2e4. \ud398\uc774\uc9d5\uc744 \uac00\ub9ac\ud0a8\ub2e4 ) \uc774\ubca4\ud2b8 \uac1d\uccb4\uac00 \uba54\ubaa8\ub9ac<br \/><br \/>\uc5d0 \uc874\uc7ac\ud558\uc9c0 \uc54a\uac8c \n\ub418\uc5b4\uc11c, \uc0c1\uc2b9\ub41c IRQL\uc5d0\uc11c \uc5b4\ub5a4 \ub2e4\ub978 \uc2a4\ub808\ub4dc\uac00 KeSetEvent()\ub97c \ud638\ucd9c\ud558\ub824 \ud558\uba74, \ubc84\uadf8 \uccb4\ud06c<br \/><br \/>\uac00 \ubc1c\uc0dd\ud558\uac8c \ub420 \uac83\uc774\ub2e4. \n<br \/><br \/>&nbsp;\uc989, \uc790\ub3d9 \ubcc0\uc218( auto-variable )\ub85c \uc120\uc5b8\ud558\uac8c \ub418\uba74, \ud398\uc774\uc9d5\uc774 \ub418\uace0, \ud568\uc218 \ud638\ucd9c\uc774 \ub05d\ub098\ubc84\ub9ac\uba74, \uadf8 \uc601\uc5ed\uc5d0 \n\uc874\uc7ac<br \/><br \/>\ud558\uc9c0 \uc54a\uac8c \ub41c\ub2e4. \uc989 \uba54\ubaa8\ub9ac\uc5d0\uc11c \uc0ad\uc81c \ub418\uac70\ub098, \ubb3c\ub9ac\uba54\ubaa8\ub9ac\uc5d0\uc11c \ub514\uc2a4\ud06c\ub85c SWAP-OUT\ub418\ubc84\ub9b0 \uc0c1\ud0dc\uc778 \uac83\uc774\ub2e4.<br \/><br \/>&nbsp;\ud760, \n\uc88b\uc544, \uc774\uc81c \uba38\ub9ac\uac00 \uc465\uc465 \ube68\uc544\ub4e4\uc774\ub294\uad70, <br \/><br \/>&nbsp;\ub2e4\uc74c\uc5d0\ub294 DISPATCH_LEVEL\uc5d0 \ub300\ud574\uc11c \uc815\ub9ac\ud574\ubd10\uc57c\uaca0\ub2e4. \n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>\uc81c\uc77c \ucc98\uc74c\uc5d0 \ucc45\uc744 \uc77d\uc73c\uba74\uc11c, \uc65c DISPATCH_LEVEL\uc5d0\uc11c \ud398\uc774\uc9d5\uc774 \ubd88\uac00\ub2a5\ud560\uae4c? \ucc45\uc5d0\uc11c\ub294 \ubaa8\ub450 \ub2f9\uc5f0\ud558\ub2e4\ub294 \ub4ef\uc774 non-paged \uba54\ubaa8\ub9ac\uc5d0 \uc788\uc5b4\uc57c \ud55c\ub2e4\uace0 \ud588\ub2e4. \uadf8\ub9ac\uace0\ub294 \uc804\uc5ed\ubcc0\uc218\uc5d0 \ub3d9\uae30\ud654 \uac1d\uccb4\ub97c \uc120\uc5b8\ud588\ub2e4. \ucc38 \uc54c\uc3ed\ub2ec\uc3ed\ud588\ub2e4. \uc804\uc5ed\ubcc0\uc218 \uc601\uc5ed\uc774 \uc65c \ud398\uc774\uc9d5\uc774 \uc548\ub418\ub294\uac00, \uadf8\ub9ac\uace0 \uc65c DISPATCH_LEVEL\uc5d0\uc11c\ub294 \ud398\uc774\uc9d5\uc774 \ud5c8\uc6a9 \uc548\ub418\ub294\uac00? \uc774\uc81c \uad81\uae08\uc99d\uc774 \ud480\ub9b0 \uac83 \uac19\ub2e4. \ub2e4\uc74c \ucf54\ub4dc\ub97c \ubcf4\uc790. \uc774\ubcd1\uc624\uc528\uc758 &#8220;\uc708\ub3c4\uc6b0 \ud30c\uc77c \uc2dc\uc2a4\ud15c&#8221; \ucc45\uc5d0 \uc788\ub294 \ucf54\ub4dc\uc774\ub2e4. view plaincopy to clipboardprint? \/\/\uc2a4\ud540 [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_import_markdown_pro_load_document_selector":0,"_import_markdown_pro_submit_text_textarea":"","site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[24],"tags":[],"class_list":["post-192","post","type-post","status-publish","format-standard","hentry","category-development_winddk"],"_links":{"self":[{"href":"https:\/\/hasu0707.duckdns.org\/blog\/index.php?rest_route=\/wp\/v2\/posts\/192","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/hasu0707.duckdns.org\/blog\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/hasu0707.duckdns.org\/blog\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/hasu0707.duckdns.org\/blog\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/hasu0707.duckdns.org\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=192"}],"version-history":[{"count":0,"href":"https:\/\/hasu0707.duckdns.org\/blog\/index.php?rest_route=\/wp\/v2\/posts\/192\/revisions"}],"wp:attachment":[{"href":"https:\/\/hasu0707.duckdns.org\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=192"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/hasu0707.duckdns.org\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=192"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/hasu0707.duckdns.org\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=192"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}