?? windows.txt
字號:
2. 堦斒偐傜乽忢偵僇僗僞儉價儖僪僗僥僢僾傪巊梡乿傪桳岠偵偡傞
3. 僇僗僞儉價儖僪僞僽傪慖戰巿丆僐儅儞僪晹偵師偺僐儅儞僪傪懪偮
---8<--- 偙偙偐傜 ---8<---
cd $(InputDir)
cl /E /I "../kernel" /I "../include" /I "../config/windows" \
$(InputName).cfg | ..\cfg\cfg.exe -s -c -v -obj -lj -cpu windows
---8<--- 偙偙傑偱 ---8<---
#峴枛偵\偺偁傞峴偼峴枛偺\傪嶍彍偟丄屻懕偡傞峴傪懕偗偰擖椡偡傞
4. 弌椡晹偵師偺僼傽僀儖傪懪偮
kernel_cfg.c
kernel_id.h
5. 儊僯儏乕偐傜乽僾儘僕僃僋僩乿乽愝掕乿傪慖戰偟丄僟僀傾儘僌撪偺僞僽
乽價儖僪屻偺張棟乿傪慖戰偡傞
6. 價儖僪屻偺張棟僐儅儞僪偲偟偰丄師偺僐儅儞僪傪擖椡偡傞丅
---8<--- 偙偙偐傜 ---8<---
cd ..
..\cfg\chk.exe -m toppers.exe -cs windows.chk -obj -v -lj
---8<--- 偙偙傑偱 ---8<---
(b) 僐儅儞僪儔僀儞偐傜捈愙懪偮応崌
1. Visual C++傪僀儞僗僩乕儖偟偨応強偺Bin僼僅儖僟偵偁傞
VCVARS32.BAT傪幚峴偡傞
#僀儞僗僩乕儖帪偵乽僐儅儞僪儔僀儞偐傜幚峴偡傞偨傔偺
#僶僢僠傪嶌傜側偄乿偲巜掕偡傞偲偙偺僼傽僀儖偼側偄
2. 僐儞僼傿僊儏儗乕僔儑儞僼傽僀儖偺偁傞僨傿儗僋僩儕偱
師偺僐儅儞僪傪擖椡偡傞
---8<--- 偙偙偐傜 ---8<---
cl /E /I "../kernel" /I "../include" /I "../config/windows" \
<僼傽僀儖柤> | ..\cfg\cfg.exe -s -c -v -obj -lj -cpu windows
---8<--- 偙偙傑偱 ---8<---
#峴枛偵\偺偁傞峴偼峴枛偺\傪嶍彍偟丄屻懕偡傞峴傪懕偗偰擖椡偡傞
kernel_id.h偲kernel_cfg.c偑惗惉偝傟偨傜丆偙傟傜偺僼傽僀儖傪僾儘僕僃僋僩偵捛
壛偟丆Visual C++偐傜價儖僪傪峴偊偽僾儘僌儔儉偑惗惉偝傟傞丏
晅懏偺僾儘僕僃僋僩僼傽僀儖偱偼丆偦傟偧傟揔愗側僼僅儖僟偵僼傽僀儖偑奿擺偝傟傞
傛偆偵側偭偰傞丏儐乕僓僾儘僌儔儉偼Source Files偲Header Files偵奿擺偝傟傞丏僒
儞僾儖埲奜偺僾儘僌儔儉傪棙梡偝傟傞応崌丆偙偺2偮偺僼僅儖僟偵奿擺偝傟偰偄傞僼
傽僀儖傪僾儘僕僃僋僩偐傜嶍彍偟偰偐傜丆怴偟偄僾儘僌儔儉傪捛壛偡傞昁梫偑偁傞丏
--------------------------
俆丏摿庩側婡峔偵娭偡傞愢柧
--------------------------
----------------------------
5.1 僨僶僀僗僄儈儏儗乕僔儑儞
----------------------------
----------------------------------------
5.1.1 僨僶僀僗僄儈儏儗乕僔儑儞娐嫬偺嶌惉
----------------------------------------
僨僶僀僗僄儈儏儗乕僔儑儞婡峔偼3偮偺僾儘僌儔儉偐傜側傞丅
丒僇乕僱儖
僨僶僀僗傪惂屼偡傞傾僾儕働乕僔儑儞偑搵嵹偝傟偨僾儘僌儔儉丅僒乕價
僗懳徾偲側傞僇乕僱儖偼僔僗僥儉撪偱扨堦 (婲摦偡傞偩偗側傜暋悢壜)丅
丒僨僶僀僗儅僱乕僕儍
僇乕僱儖偐傜偺梫媮偵懳偟偰揔愗側僨僶僀僗偵梫媮傪夞憲偡傞僾儘僌儔
儉 (僀儀儞僩僨傿僗僷僢僠儍)丅僇乕僱儖傑偨偼僨僶僀僗偑婲摦偡傞偲
COM偵傛偭偰帺摦揑偵婲摦偡傞丅僔僗僥儉撪偱扨堦丅
丒僨僶僀僗
僨僶僀僗偺僄儈儏儗乕僔儑儞傪峴偆僾儘僌儔儉丅僇乕僱儖偐傜敪峴偝傟
偨梫媮偵偟偨偑偭偰張棟傪峴偆丅儅僢僺儞僌嬻娫偑廳暋偟側偗傟偽暋悢
婲摦壜擻丅VisualBASIC傪棙梡偡傞偙偲傕偱偒傞丅
僇乕僱儖偺僨僶僀僗僄儈儏儗乕僔儑儞婡擻偺嶌惉偵娭偟偰偼 3.4僨僶僀僗僄儈儏
儗乕僔儑儞 傪嶲徠偝傟偨偄丅
僨僶僀僗儅僱乕僕儍偍傛傃VisualBASIC梡僨僶僀僗僐儞僩儘乕儖偺嶌惉偵偼師偺
僣乕儖偑昁梫偵側傞丅
丒Microsoft Visual C++ 6.0/.NET
丒Microsoft VisualBASIC 6.0
丒COM幚峴娐嫬 (Windows 2000/XP)
丒Active Template Library 3.0 (Visual C++ 6.0埲崀偵娷傑傟傞)
僨僶僀僗儅僱乕僕儍(COM斉)偼師偺傛偆偵偟偰嶌惉偡傞丅
婎杮揑偵丆價儖僪傪峴偆偩偗偱僒乕僶搊榐偍傛傃僾儘僉僔/僗僞僽搊榐傪峴偆丏
(0. 傾僋僥傿僽側峔惉偺愝掕傪Debug偵偡傞偐丄椺奜廃傝偺愝掕傪曄偊傞)
1. Visual C++傪婲摦偟丄僾儘僕僃僋僩儚乕僋僗儁乕僗devicemanager.dsw傪
奐偔
2. 價儖僪傪峴偆
3. OLE View傪婲摦偟丄Interfaces偺拞偵IDevice偲IKernel偑偁傞偙偲傪
妋擣偡傞 (僾儘僉僔/僗僞僽DLL偺僀儞僗僩乕儖妋擣)
僾儘僉僔/僗僞僽DLL偑惓偟偔摫擖偝傟側偄応崌偼丆師偺嶌嬈傪梫偡傞丏
1. 僐儅儞僪僾儘儞僾僩傪婲摦偡傞
2. Visual C++傪僀儞僗僩乕儖偟偨僨傿儗僋僩儕偺bin/VCVARS32.BAT傪幚峴偟
娭楢僣乕儖偑巊偊傞傛偆偵偡傞
3. 僾儘僕僃僋僩偺偁傞僨傿儗僋僩儕傊堏摦偡傞
4. 師偺僐儅儞僪傪幚峴偡傞
nmake devicemanagerps.mk
5. 師偺僐儅儞僪傪幚峴偡傞
regsvr32 devicemanagerps.dll
僨僶僀僗儅僱乕僕儍(COM斉)偺幚峴僾儘僌儔儉偺応強傪堏摦偟偨偄応崌偵偼丄
師偺嶌嬈傪梫偡傞丏
1. devicemanager.exe傪堏摦偡傞
2. 堏摦偟偨愭偱丄師偺僐儅儞僪傪幚峴偡傞
regsvr32 devicemanager.exe
僨僶僀僗儅僱乕僕儍(COM斉)傪堏摦偡傞応崌偵偼丄師偺嶌嬈傪梫偡傞丅
1. 僐儅儞僪僾儘儞僾僩傪婲摦偟丄幚峴僼傽僀儖傪堏摦偝偣傞
2. 堏摦偝偣偨屻丄僆僾僔儑儞 "/RegServer" 傪偮偗偰幚峴偡傞
> devicemanager.exe /RegServer
僨僶僀僗儅僱乕僕儍(COM斉)傪嶍彍偡傞応崌偵偼丄師偺嶌嬈傪梫偡傞丅
1. 僐儅儞僪僾儘儞僾僩偐傜僆僾僔儑儞 "/UnregServer" 傪偮偗偰幚峴偡傞
> devicemanager.exe /UnregServer
2. 幚峴僼傽僀儖傪嶍彍偡傞
VisualBASIC梡僨僶僀僗僐儞僩儘乕儖(COM斉)偺嶌惉偵偼丄師偺嶌嬈傪梫偡傞丅
婎杮揑偵丆價儖僪傪峴偆偩偗偱僒乕僶搊榐偍傛傃僾儘僉僔/僗僞僽搊榐傪峴偆丏
1. Visual C++傪婲摦偟丄僾儘僕僃僋僩儚乕僋僗儁乕僗device.dsw傪奐偔
2. 價儖僪傪峴偆
3. OLEView傪婲摦偟丄Interfaces偵IDeviceControl偑偁傞偙偲傪
妋擣偡傞
VisualBASIC梡僨僶僀僗僐儞僩儘乕儖(COM斉)偺堏摦偵偼丄師偺嶌嬈傪梫偡傞丅
1. device.dll傪堏摦偡傞
2. 僐儅儞僪僾儘儞僾僩偐傜師偺僐儅儞僪傪敪峴偡傞
regsvr32 (堏摦愭)\device.dll
VisualBASIC梡僨僶僀僗僐儞僩儘乕儖(COM斉)偺嶍彍偵偼丄師偺嶌嬈傪梫偡傞丅
1. 僐儅儞僪僾儘儞僾僩偐傜師偺僐儅儞僪傪敪峴偡傞
regsvr32 /u (僀儞僗僩乕儖愭)\device.dll
2. DLL傪嶍彍偡傞
------------------------------------------------------
5.1.2 VisualBASIC梡僨僶僀僗僐儞僩儘乕儖(COM斉)偺巊偄曽
------------------------------------------------------
TOPPERS/JSP Windows 偺僨僶僀僗僄儈儏儗乕僔儑儞偱棙梡偝傟傞僨僶僀僗偼丄Vi
sualBASIC傪棙梡偟偰傕嶌惉壜擻偱偁傞丅VisualBASIC傪棙梡偡傞偙偲偱丄抁帪娫
偱僄儈儏儗乕僞傪嶌惉偱偒傞丅杮崁偱偼VisualBASIC梡僨僶僀僗僐儞僩儘乕儖偺
奣梫偲丄娙扨側嶌惉庤弴傪帵偡丅
TOPPERS/JSP on Windows Device Component偱採嫙偝傟傞婡擻偼師偺捠傝
僆僽僕僃僋僩 DeviceControl
儊僜僢僪 Public Sub Connect()
僨僶僀僗儅僱乕僕儍偲偺捠怣傪妋棫偝偣傞丅
妋棫慜偵Connect埲奜偺儊僜僢僪傪幚峴偡傞偲幐攕偡傞丅
幐攕偡傞偲E_FAIL偑曉傞丅
儊僜僢僪 Public Sub Close()
僨僶僀僗儅僱乕僕儍偲偺捠怣傪廔椆偡傞丅
幐攕偡傞偲E_FAIL偑曉傞丅
儊僜僢僪 Public Sub RaiseInterrupt(ByVal inhno as long)
僇乕僱儖僾儘僙僗偵僴儞僪儔斣崋inhno偺妱崬傒傪敪惗偝偣傞丅
幐攕偡傞偲E_FAIL偑曉傞丅0埲壓偺抣偼愝掕偱偒側偄丅
儊僜僢僪 Public Sub Map(ByVal address as long, ByVal size as long)
偙偺僨僶僀僗傪傾僪儗僗address偐傜size僶僀僩偺僒僀僘偱儅僢僺儞僌偡傞丅
埲屻丄懳徾椞堟偵傾僋僙僗偑偁傞偲丄僀儀儞僩偑敪惗偡傞丅
儊僜僢僪 Public Sub Unmap(ByVal address as long)
傾僪儗僗address傪娷傓傛偆側儅僢僾嵪傒椞堟偺儅僢僺儞僌傪夝彍偡傞丅
埲屻丄懳徾椞堟偵傾僋僙僗偑偁偭偰傕僀儀儞僩偼敪惗偟側偄丅
僾儘僷僥傿 Public Valid as BOOL [R]
偙偺僨僶僀僗偑桳岠偱偁傞偲偒偵偼True偲側傞丅
僾儘僷僥傿 Public IsKernelStarted as BOOL [R]
僇乕僱儖偑婲摦偟偰偄傞偲True偲側傞丅
僾儘僷僥傿 Public Offset as long [RW]
憲庴怣僨乕僞僶僢僼傽偺僆僼僙僢僩埵抲傪巜掕/庢摼偡傞丅
扨埵偼僶僀僩扨埵偱偁傞丅
僾儘僷僥傿 Public AccessSize as short [RW]
傾僋僙僗扨埵傪巜掕/庢摼偡傞丅
悢抣偼1,2,4偺偄偢傟偐偱偁傞丅
僾儘僷僥傿 Public Value as long [RW]
僾儘僷僥傿Offset偺埵抲偐傜僾儘僷僥傿AccessSize僶僀僩偺
儕僩儖僄儞僨傿傾儞偵廬偄悢抣昞尰偟偨傕偺傪庢摼/愝掕偡傞丅
傾僋僙僗偑峴傢傟傞偲Offset偺抣傪AccessSize偩偗憹壛偝偣傞丅
僀儀儞僩OnRead帪偵偍偗傞撉崬傒偼柍岠偲側傞丅
僀儀儞僩OnWrite帪偵偍偗傞彂偒崬傒偼柍岠偲側傞丅
僀儀儞僩 Private Sub OnRead(ByVal address as long, ByVal sz as long)
僇乕僱儖偐傜address斣抧偵懳偡傞sz僶僀僩偺撉崬傒偑偁偭偨偙偲傪捠
抦偡傞丅僨僶僀僗偼偦偺曉摎偲側傞抣傪奿擺偟側偗傟偽側傜側偄丅
僀儀儞僩敪惗帪偵偼Offset偼忢偵0偲側傞丅
OnRead僀儀儞僩敪惗帪偵偼Value偵懳偡傞撉崬傒偼偱偒側偄丅
僀儀儞僩 Private Sub OnWrite(ByVal address as long, ByVal sz as long)
僇乕僱儖偐傜address斣抧偵懳偡傞sz僶僀僩偺彂崬傒偑偁偭偨偙偲傪捠
抦偡傞丅僨僶僀僗偼偦偺抣偐傜揔愗側張棟傪峴傢側偗傟偽側傜側偄丅
僀儀儞僩敪惗帪偵偼Offset偼忢偵0偲側傞丅
OnWrite僀儀儞僩敪惗帪偵偼Value偵懳偡傞彂偒崬傒偼偱偒側偄丅
僀儀儞僩 Private Sub OnKernelStart()
僇乕僱儖偑婲摦偟偨偙偲傪捠抦偡傞丅
僀儀儞僩 Private Sub OnKernelExit()
僇乕僱儖偑廔椆偟偨偙偲傪捠抦偡傞丅
僨僶僀僗僆僽僕僃僋僩偼憲庴怣僨乕僞傪娙扨偵埖偆偨傔偵丄撪晹偵僶僢僼傽婡峔
傪帩偭偰偄傞丅偙偺僶僢僼傽婡峔偼僾儘僷僥傿AccessSize, Offset, Value偺3偮
傪棙梡偟偰庢摼/愝掕偡傞偙偲偑壜擻偲側傞丅
椺偲偟偰丄僇乕僱儖偐傜0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xef偲偄
偆8僶僀僩偺僨乕僞偑憲傜傟偰偒偨応崌丄Value偵奿擺偝傟偰偄傞僨乕僞偼偦傟偧
傟AccessSize偵廬偭偰師偺傛偆偵庢摼偝傟傞丅傑偨Value偵傾僋僙僗偡傞偲帺摦
揑偵Offset偑AccessSize暘僀儞僋儕儊儞僩偝傟傞偨傔丄楢懕偟偰庢摼偡傞偲楢懕
偡傞僨乕僞傪庢摼偡傞偙偲偵側傞丅
昞: AccessSize偵傛傞Value偺抣偺曄壔
+----+----------------------------+
| | AccessSize |
|夞悢+------+--------+------------+
| | 1 | 2 | 4 |
+----+------+--------+------------+
+----+------+--------+------------+
| 1 | 0x01 | 0x2301 | 0x67452301 |
| 2 | 0x23 | 0x6745 | 0xefcdab89 |
| 3 | 0x45 | 0xab89 | -枹掕媊- |
| 4 | 0x67 | 0xefcd | -枹掕媊- |
| 5 | 0x89 | 枹掕媊 | -枹掕媊- |
| 6 | 0xab | 枹掕媊 | -枹掕媊- |
| 7 | 0xcd | 枹掕媊 | -枹掕媊- |
| 8 | 0xef | 枹掕媊 | -枹掕媊- |
| 9 |枹掕媊| 枹掕媊 | -枹掕媊- |
+----+------+--------+------------+
sample1.c傪夵憿偟偰丄尰嵼摦偄偰偄傞僞僗僋斣崋傪昞帵偡傞傛偆側僨僶僀僗傪
嶌惉偡傞庤弴傪帵偡丅
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -