📄 vxd-c6.htm
字号:
<p class=MsoPlainText style='margin-left:21.0pt;text-indent:-21.0pt;mso-list:
l3 level1 lfo8;tab-stops:list 21.0pt'><![if !supportLists]><span lang=EN-US
style='font-family:Wingdings'>l<span style='font:7.0pt "Times New Roman"'>
</span></span><![endif]><span lang=EN-US style='color:#66FFFF'>hDevice</span>是<span
lang=EN-US><span style='mso-tab-count:2'> </span>ring-3级设备句柄。</span></p>
<p class=MsoPlainText style='margin-left:21.0pt;text-indent:-21.0pt;mso-list:
l3 level1 lfo8;tab-stops:list 21.0pt'><![if !supportLists]><span lang=EN-US
style='font-family:Wingdings'>l<span style='font:7.0pt "Times New Roman"'>
</span></span><![endif]><span lang=EN-US style='color:#66FFFF'>tagProces</span><span
lang=EN-US><span style='mso-tab-count:2'> </span>是过程的标签。</span></p>
<p class=MsoPlainText>在<span lang=EN-US style='color:#FFFF99'>DIOCParams</span>结构中有所有从<span
lang=EN-US>Win32应用程序传送到你的VxD的信息。</span></p>
<p class=MsoPlainText>你的<span lang=EN-US>VxD至少要处理</span><span lang=EN-US
style='color:#FFFF99'>DIOC_Open</span><span lang=EN-US>(传送到dwIoControlCode),那是当Win32程序调用CreateFile打开你的VxD时</span><span
lang=EN-US style='color:#FFCC33'>VWIN32</span>发送给你的<span lang=EN-US>VxD的。如果你的VxD准备好了,它必须在eax中返回0而且CreateFile也会成功。如果你的VxD没有准备好,它必须在eas中返回一个非零值而且CreateFile也会失败。除了</span><span
lang=EN-US style='color:#FFFF99'>DIOC_Open</span><span lang=EN-US>,当Win32程序关闭这个设备句柄时,你的VxD将会从</span><span
lang=EN-US style='color:#FFCC33'>VWIN32</span>收到<span lang=EN-US
style='color:#FFFF99'>DIOC_Closehandle</span>。</p>
<p class=MsoPlainText><b><span style='font-size:13.5pt;mso-bidi-font-size:10.5pt;
color:#66FFFF'>能由<span lang=EN-US>CreateFile加载的最小的动态VxD框架:<o:p></o:p></span></span></b></p>
<p class=MsoNormal style='margin-right:36.0pt;mso-margin-top-alt:auto;
mso-margin-bottom-alt:auto;margin-left:36.0pt'><b><span lang=EN-US
style='font-size:10.0pt;font-family:Arial'>.386p</span></b><span lang=EN-US> <br>
</span><b><span lang=EN-US style='font-size:10.0pt;font-family:Arial'>include
vmm.inc</span></b><span lang=EN-US> <br>
</span><b><span lang=EN-US style='font-size:10.0pt;font-family:Arial'>include
vwin32.inc</span></b><span lang=EN-US> </span></p>
<p style='margin-right:36.0pt;margin-left:36.0pt'><b><span lang=EN-US
style='font-size:10.0pt;font-family:Arial'>DECLARE_VIRTUAL_DEVICE DYNAVXD,1,0,
DYNAVXD_Control,\</span></b><span lang=EN-US> <br>
</span><b><span lang=EN-US style='font-size:10.0pt;font-family:Arial'>
UNDEFINED_DEVICE_ID, UNDEFINED_INIT_ORDER</span></b><span lang=EN-US> </span></p>
<p style='margin-right:36.0pt;margin-left:36.0pt'><b><span lang=EN-US
style='font-size:10.0pt;font-family:Arial'>Begin_control_dispatch DYNAVXD</span></b><span
lang=EN-US> <br>
</span><b><span lang=EN-US style='font-size:10.0pt;font-family:Arial;
color:#FFFF99'> Control_Dispatch w32_DeviceIoControl,
OnDeviceIoControl</span></b><span lang=EN-US> <br>
</span><b><span lang=EN-US style='font-size:10.0pt;font-family:Arial'>End_control_dispatch
DYNAVXD</span></b><span lang=EN-US> </span></p>
<p style='margin-right:36.0pt;margin-left:36.0pt'><b><span lang=EN-US
style='font-size:10.0pt;font-family:Arial'>VxD_PAGEABLE_CODE_SEG</span></b><span
lang=EN-US> <br>
</span><b><span lang=EN-US style='font-size:10.0pt;font-family:Arial;
color:#FFFF99'>BeginProc OnDeviceIoControl</span></b><span lang=EN-US> <br>
</span><b><span lang=EN-US style='font-size:10.0pt;font-family:Arial;
color:#FFFF99'> assume esi:ptr DIOCParams</span></b><span
lang=EN-US> <br>
</span><b><span lang=EN-US style='font-size:10.0pt;font-family:Arial;
color:#FFFF99'> .if [esi].dwIoControlCode==DIOC_Open</span></b><span
lang=EN-US> <br>
</span><b><span lang=EN-US style='font-size:10.0pt;font-family:Arial;
color:#FFFF99'> xor eax,eax</span></b><span
lang=EN-US> <br>
</span><b><span lang=EN-US style='font-size:10.0pt;font-family:Arial;
color:#FFFF99'> .endif</span></b><span lang=EN-US> <br>
</span><b><span lang=EN-US style='font-size:10.0pt;font-family:Arial;
color:#FFFF99'> ret</span></b><span lang=EN-US> <br>
</span><b><span lang=EN-US style='font-size:10.0pt;font-family:Arial;
color:#FFFF99'>EndProc OnDeviceIoControl</span></b><span lang=EN-US> <br>
</span><b><span lang=EN-US style='font-size:10.0pt;font-family:Arial'>VxD_PAGEABLE_CODE_ENDS</span></b><span
lang=EN-US> </span></p>
<p style='margin-right:36.0pt;margin-left:36.0pt'><b><span lang=EN-US
style='font-size:10.0pt;font-family:Arial'>end</span></b></p>
<p class=MsoNormal><b><span lang=EN-US style='font-size:10.0pt;font-family:
Arial'>;--------------------------------------------------------------------------------------------------------------------------------</span></b><span
lang=EN-US> <br>
</span><b><span lang=EN-US style='font-size:10.0pt;font-family:Arial'>;
Module Definition File</span></b><span lang=EN-US> <br>
</span><b><span lang=EN-US style='font-size:10.0pt;font-family:Arial'>;---------------------------------------------------------------------------------------------------------------------------------</span></b><span
lang=EN-US> </span></p>
<p class=MsoNormal style='margin-right:36.0pt;mso-margin-top-alt:auto;
mso-margin-bottom-alt:auto;margin-left:36.0pt'><tt><b><span lang=EN-US
style='font-size:7.5pt;font-family:黑体'>VXD DYNAVXD</span></b></tt><tt><b><span
lang=EN-US style='font-size:7.5pt;font-family:黑体;color:#FFFF99'> DYNAMIC</span></b></tt><span
lang=EN-US> </span></p>
<p style='margin-right:36.0pt;margin-left:36.0pt'><tt><b><span lang=EN-US
style='font-size:7.5pt;font-family:黑体'>SEGMENTS</span></b></tt><span
lang=EN-US> <br>
</span><tt><b><span lang=EN-US style='font-size:7.5pt;font-family:"Courier New";
mso-ascii-font-family:黑体'> </span></b></tt><tt><b><span
lang=EN-US style='font-size:7.5pt;font-family:黑体'> _LPTEXT</span></b></tt><tt><b><span
lang=EN-US style='font-size:7.5pt;font-family:"Courier New";mso-ascii-font-family:
黑体'> </span></b></tt><tt><b><span lang=EN-US
style='font-size:7.5pt;font-family:黑体'> CLASS 'LCODE'</span></b></tt><tt><b><span
lang=EN-US style='font-size:7.5pt;font-family:"Courier New";mso-ascii-font-family:
黑体'> </span></b></tt><tt><b><span lang=EN-US style='font-size:
7.5pt;font-family:黑体'> PRELOAD NONDISCARDABLE</span></b></tt><span lang=EN-US> <br>
</span><tt><b><span lang=EN-US style='font-size:7.5pt;font-family:"Courier New";
mso-ascii-font-family:黑体'> </span></b></tt><tt><b><span
lang=EN-US style='font-size:7.5pt;font-family:黑体'> _LTEXT</span></b></tt><tt><b><span
lang=EN-US style='font-size:7.5pt;font-family:"Courier New";mso-ascii-font-family:
黑体'> </span></b></tt><tt><b><span
lang=EN-US style='font-size:7.5pt;font-family:黑体'> CLASS 'LCODE'</span></b></tt><tt><b><span
lang=EN-US style='font-size:7.5pt;font-family:"Courier New";mso-ascii-font-family:
黑体'> </span></b></tt><tt><b><span lang=EN-US style='font-size:
7.5pt;font-family:黑体'> PRELOAD NONDISCARDABLE</span></b></tt><span lang=EN-US> <br>
</span><tt><b><span lang=EN-US style='font-size:7.5pt;font-family:"Courier New";
mso-ascii-font-family:黑体'> </span></b></tt><tt><b><span
lang=EN-US style='font-size:7.5pt;font-family:黑体'> _LDATA</span></b></tt><tt><b><span
lang=EN-US style='font-size:7.5pt;font-family:"Courier New";mso-ascii-font-family:
黑体'> </span></b></tt><tt><b><span
lang=EN-US style='font-size:7.5pt;font-family:黑体'> CLASS 'LCODE'</span></b></tt><tt><b><span
lang=EN-US style='font-size:7.5pt;font-family:"Courier New";mso-ascii-font-family:
黑体'> </span></b></tt><tt><b><span lang=EN-US style='font-size:
7.5pt;font-family:黑体'> PRELOAD NONDISCARDABLE</span></b></tt><span lang=EN-US> <br>
</span><tt><b><span lang=EN-US style='font-size:7.5pt;font-family:"Courier New";
mso-ascii-font-family:黑体'> </span></b></tt><tt><b><span
lang=EN-US style='font-size:7.5pt;font-family:黑体'> _TEXT</span></b></tt><tt><b><span
lang=EN-US style='font-size:7.5pt;font-family:"Courier New";mso-ascii-font-family:
黑体'> </span></b></tt><tt><b><span
lang=EN-US style='font-size:7.5pt;font-family:黑体'> CLASS 'LCODE'</span></b></tt><tt><b><span
lang=EN-US style='font-size:7.5pt;font-family:"Courier New";mso-ascii-font-family:
黑体'> </span></b></tt><tt><b><span lang=EN-US style='font-size:
7.5pt;font-family:黑体'> PRELOAD NONDISCARDABLE</span></b></tt><span lang=EN-US> <br>
</span><tt><b><span lang=EN-US style='font-size:7.5pt;font-family:"Courier New";
mso-ascii-font-family:黑体'> </span></b></tt><tt><b><span
lang=EN-US style='font-size:7.5pt;font-family:黑体'> _DATA</span></b></tt><tt><b><span
lang=EN-US style='font-size:7.5pt;font-family:"Courier New";mso-ascii-font-family:
黑体'> </span></b></tt><tt><b><span
lang=EN-US style='font-size:7.5pt;font-family:黑体'> CLASS 'LCODE'</span></b></tt><tt><b><span
lang=EN-US style='font-size:7.5pt;font-family:"Courier New";mso-ascii-font-family:
黑体'> </span></b></tt><tt><b><span lang=EN-US style='font-size:
7.5pt;font-family:黑体'> PRELOAD NONDISCARDABLE</span></b></tt><span lang=EN-US> <br>
</span><tt><b><span lang=EN-US style='font-size:7.5pt;font-family:"Courier New";
mso-ascii-font-family:黑体'> </span></b></tt><tt><b><span
lang=EN-US style='font-size:7.5pt;font-family:黑体'> CONST</span></b></tt><tt><b><span
lang=EN-US style='font-size:7.5pt;font-family:"Courier New";mso-ascii-font-family:
黑体'> </span></b></tt><tt><b><span
lang=EN-US style='font-size:7.5pt;font-family:黑体'> CLASS 'LCODE'</span></b></tt><tt><b><span
lang=EN-US style='font-size:7.5pt;font-family:"Courier New";mso-ascii-font-family:
黑体'> </span></b></tt><tt><b><span lang=EN-US style='font-size:
7.5pt;font-family:黑体'> PRELOAD NONDISCARDABLE</span></b></tt><span lang=EN-US> <br>
</span><tt><b><span lang=EN-US style='font-size:7.5pt;font-family:"Courier New";
mso-ascii-font-family:黑体'> </span></b></tt><tt><b><span
lang=EN-US style='font-size:7.5pt;font-family:黑体'> _TLS</span></b></tt><tt><b><span
lang=EN-US style='font-size:7.5pt;font-family:"Courier New";mso-ascii-font-family:
黑体'> </span></b></tt><tt><b><span
lang=EN-US style='font-size:7.5pt;font-family:黑体'> CLASS 'LCODE'</span></b></tt><tt><b><span
lang=EN-US style='font-size:7.5pt;font-family:"Courier New";mso-ascii-font-family:
黑体'> </span></b></tt><tt><b><span lang=EN-US style='font-size:
7.5pt;font-family:黑体'> PRELOAD NONDISCARDABLE</span></b></tt><span lang=EN-US> <br>
</span><tt><b><span lang=EN-US style='font-size:7.5pt;font-family:"Courier New";
mso-ascii-font-family:黑体'> </span></b></tt><tt><b><span
lang=EN-US style='font-size:7.5pt;font-family:黑体'> _BSS</span></b></tt><tt><b><span
lang=EN-US style='font-size:7.5pt;font-family:"Courier New";mso-ascii-font-family:
黑体'> </span></b></tt><tt><b><span
lang=EN-US style='font-size:7.5pt;font-family:黑体'> CLASS 'LCODE'</span></b></tt><tt><b><span
lang=EN-US style='font-size:7.5pt;font-family:"Courier New";mso-ascii-font-family:
黑体'> </span></b></tt><tt><b><span lang=EN-US style='font-size:
7.5pt;font-family:黑体'> PRELOAD NONDISCARDABLE</span></b></tt><span lang=EN-US> <br>
</span><tt><b><span lang=EN-US style='font-size:7.5pt;font-family:"Courier New";
mso-ascii-font-family:黑体'> </span></b></tt><tt><b><span
lang=EN-US style='font-size:7.5pt;font-family:黑体'> _LMGTABLE</span></b></tt><tt><b><span
lang=EN-US style='font-size:7.5pt;font-family:"Courier New";mso-ascii-font-family:
黑体'> </span></b></tt><tt><b><span lang=EN-US style='font-size:
7.5pt;font-family:黑体'> CLASS 'MCODE'</span></b></tt><tt><b><span lang=EN-US
style='font-size:7.5pt;font-family:"Courier New";mso-ascii-font-family:黑体'> </span></b></tt><tt><b><span
lang=EN-US style='font-size:7.5pt;font-family:黑体'> PRELOAD NONDISCARDABLE IOPL</span></b></tt><span
lang=EN-US> <br>
</span><tt><b><span lang=EN-US style='font-size:7.5pt;font-family:"Courier New";
mso-ascii-font-family:黑体'> </span></b></tt><tt><b><span
lang=EN-US style='font-size:7.5pt;font-family:黑体'> _LMSGDATA</span></b></tt><tt><b><span
lang=EN-US style='font-size:7.5pt;font-family:"Courier New";mso-ascii-font-family:
黑体'> </span></b></tt><tt><b><span lang=EN-US style='font-size:
7.5pt;font-family:黑体'> CLASS 'MCODE'</span></b></tt><tt><b><span lang=EN-US
style='font-size:7.5pt;font-family:"Courier New";mso-ascii-font-family:黑体'> </span></b></tt><tt><b><span
lang=EN-US style='font-size:7.5pt;font-family:黑体'> PRELOAD NONDISCARDABLE IOPL</span></b></tt><span
lang=EN-US> <br>
</span><tt><b><span lang=EN-US style='font-size:7.5pt;font-family:"Courier New";
mso-ascii-font-family:黑体'> </span></b></tt><tt><b><span
lang=EN-US style='font-size:7.5pt;font-family:黑体'> _IMSGTABLE</span></b></tt><tt><b><span
lang=EN-US style='font-size:7.5pt;font-family:"Courier New";mso-ascii-font-family:
黑体'> </span></b></tt><tt><b><span lang=EN-US style='font-size:7.5pt;
font-family:黑体'> CLASS 'MCODE'</span></b></tt><tt><b><span lang=EN-US
style='font-size:7.5pt;font-family:"Courier New";mso-ascii-font-family:黑体'> </span></b></tt><tt><b><span
lang=EN-US style='font-size:7.5pt;font-family:黑体'> PRELOAD DISCARDABLE IOPL</span></b></tt><span
lang=EN-US> <br>
</span><tt><b><span lang=EN-US style='font-size:7.5pt;font-family:"Courier New";
mso-ascii-font-family:黑体'> </span></b></tt><tt><b><span
lang=EN-US style='font-size:7.5pt;font-family:黑体'> _IMSGDATA</span></b></tt><tt><b><span
lang=EN-US style='font-size:7.5pt;font-family:"Courier New";mso-ascii-font-family:
黑体'> </span></b></tt><tt><b><span lang=EN-US style='font-size:
7.5pt;font-family:黑体'> CLASS 'MCODE'</span></b></tt><tt><b><span lang=EN-US
style='font-size:7.5pt;font-family:"Courier New";mso-ascii-font-family:黑体'> </span></b></tt><tt><b><span
lang=EN-US style='font-size:7.5pt;font-family:黑体'> PRELOAD DISCARDABLE IOPL</span></b></tt><span
lang=EN-US> <br>
</span><tt><b><span lang=EN-US style='font-size:7.5pt;font-family:"Courier New";
mso-ascii-font-family:黑体'> </span></b></tt><tt><b><span
lang=EN-US style='font-size:7.5pt;font-family:黑体'> _ITEXT</span></b></tt><tt><b><span
lang=EN-US style='font-size:7.5pt;font-family:"Courier New";mso-ascii-font-family:
黑体'> </span></b></tt><tt><b><span
lang=EN-US style='font-size:7.5pt;font-family:黑体'> CLASS 'ICODE'</span></b></tt><tt><b><span
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -