You are on page 1of 4

Subject: �‫ �ڪ‬DDK �Dz߸g��

Date: Mon, 05 Jan 1998 02:39:44 +0800


From: to.bbs@cis.nctu.edu.tw
To: b3701234@cc.ntu.edu.tw

�o�H�H: WeiPo.bbs@csie.nctu.edu.tw (Weber), �H��: programming


�� �D: �‫ �ڪ‬DDK �Dz߸g��
�o�H��: ��j��u��ī���T�� (Fri Oct 3 13:02:58 1997)
��H��: cis_nctu!news.cis.nctu!news.csie.nctu!phoenix
�� ��: weberl.asus.com.tw

�q 97 �~ 1 �� �‫ڦ‬b Program �� Post ���y���ߺ�;Dz� Window


Device Driver �H��, �����򦬨 @�ǤH �߰‫ݦ‬p��U��. �{�b��
�w�S�ɶ��� BBS, �]���F 3D ��‫ܥ‬d Driver �n Tune �~,
�‫ٳ‬Q���h���@���� 7 �� 8 ���Ʊ�. �X�Юv�`����,
�g�U�o�ʧ‫ھ‬Dz� DDK ���g��, �p�G���������Dı�o���ͦ�
��U, �N����ާQ��, ���ΫȮ�. ��‫��`ݪ‬X�B, ���Y�T������
�Q�|��(�p���ѭ‫��ק‬, ���Ȩ�Z�O), ����@�Ǻ��� ʹ X�p��b
MFC ���� I/O Port Function �����D, �^���F 6 ��, ���ı�o��
�ззззз�. �Ʊ�o�‫��ر‬p���b�o��.

����Ѥ� 3 �q: (1) ����‫ڭ‬n�� DDK (2) �Dz� DDK ���L�{ (3)����
�i�઺�o�i.

(1) ����‫ڭ‬n�� DDK


� ‫ڬ‬O��T��Z�X��, �NŪ�L��j�p�u, �M�j���. ��g 78,79 �ѥ��g�t, �h���,
�{���g�{���S����e�~, �]�L�k���� 38 ��. �� MBA �o�O�V�ѤH�߶V�h, ���J
�]�V�h, �ҥH�i�굦�|, �@���u�@ �@���dz� GMAT, ��S�ӽШ�z�Q���Ǯ�,
�Ӧҥ~�T��|���H�~��V�Z, �b�Ƹծɤ]�Q��U��. �̫�{ �
R �
Ĩľ �
Window 3.1,

�Ĥ@�~���h�C���Ʈw�M��, ��ɳs VC++ 1.0 ���٨S�X�{. �N�� Borland C++ 3.0


�H�� SDK �覡 coding,(�]�����D�� OWL �o�‫ت‬F��) �ƫ�Q�_�ӯu�O�]�‫ױ‬o��,
��‫�ڧ‬F�� Window ���h���B�@ (���L��ɯu��ı�o�
�ܷ F).

�ĤG�~�� Video Editor �O�‫ ���ּ֪��ڤ‬ɥ�, VC++ 1.0 ��X��, ��S�@


��������y, �s MSDN �]�@��. ����? ��B�䤣����. �̫� γ̲ª ���
k:
�� Debuger trace MFC source code! �M��f�t Video for Window 1.1 �� SDK ��
coding, ��ɶ̶̱o, �H���i�H���� Video Editor ��ͥ�
߫ , �ҥH�`�`�[�Z�� 10
�I, ���� Video Editor ���‫�׫‬N����x�ë�, �� Aldus �Q Adobe ����, �ͥ ߤ]
�� PhotoStyle �浹 Adobe. �o��ƥ���‫ڱ‬o��ӱаV: �M�˳n�餣�n��, ����P
��‫ڤ‬j�t�P������~�v��.

�]���� Video Editor �|�Q�� MCI Command �ӱ��� AVI/FLI ����, ��ı�o�‫��_ܩ‬, ����
MCI Driver �쩳�b�d����? �b�n�_���X�ϤU, ½ MSDN �� MultiMedia Device Driver
�Ӭ�, �~�d� MCI Driver �p��P���h�� Video/Audio Driver ���q.

�ĤT�~�O�̶
·t ���
ɴ �, Team Leader �] ��Multimedia Title � Ӱ �
( �
‫�����ٴ‬V���‫��׬‬
�] Game �Ӱ�). ��u, ��, ���M�b�@�_, �ӭn�‫ �ڥ‬Director 3.0 �� Lingo �y���Ӽg
Title �� Program. � ‫ګ‬K�}�l����, �P�ɦۤv������ MFC + WinG + 32 Bit Assembly
�b Win 3.1 �W�g����� Director 3.0 �� Engine. UI �� ø�Ϥ��������, �ӥB����t��
�� Director 3.0 �٧�. ��d�b�����D�p��]�p Script �� Interpreter. �̫� u n
� ���
}.
�M������I�N�o�ͦb �
o �
@ �
~:
��x�_�q���u�|����, �}�� "Windows �v���X�ʵ{����R" �ҵ{�ӻP���l���ͦ�� @ ��
���t(����`���L���]�ӤW�‫ڳ‬o�L�W�p���򪺽 ), �]�O�d�L�@�i�W�. �t�~��O�H�g Motion
Control Card �� Dos Driver �ӥΦb CNC �W, �� Driver �}�l�o�Ϳ���, ��Ӽg Driver ��
�Q�����.

�ĥ|�~, �·t����l�‫�ש‬L�h. �ѻP IBM VisualAge for Basic �� Visual Component


�}�o, �� VisualAge for C++ 3.0 �� coding, �L�F�@�q�L�������ƪ���l, �٦n
�q����� OpenClass source code, �o�� tracing ���믫, �‫󶶧ש‬Q����. �o�~�b
�Y�q���i���J�W��¾ IBM ���j�ǦP��, �Q�L�կ��٦b�̭
‫ڤ‬
߲ �� ,������‫ܤ‬z��
�n��. �]�ϧ ‫��ګ‬, �u�| coding ���‫��ڥ‬ӭn��h��q, ��D�n�L� �ۤ@�~���@�ӱM��
����l��? �M�� 40 ���ɷ|�‫ (? ����ܦ‬PetShop Boy �� " Being Borning" �b�
‫����ڸ‬T�_...)

���n�I�W�@�Ӽv�T�‫ ܤ‬j
‫��� ګ‬P��, �L���ɤ]����H�g���@�� Window 95 �� VxD,
��O�V�L�Q��, �þDZo�p��������
󦬶�, �m�n�N ���� A/D D/A �d�� Win31/95
Driver CASE �Ӱ�, �g�� Win95 ı�o���L�}, �K�� NT 4.0 DDK �Ӭ�.
�t�~�L���ƨS�Ʈ� ASIS �q�l�P�Z��� ‫�ڬ‬, ��ɥ���� PC97 �� specification: ACPI,
AGP, OnNow���s�޳N, �‫��ڬ ݧ‬N���D�j�n��|�ӤF. �̰�A/D D/A d � Window Driver
���g��, �‫��ڪ‬D�H�� Win95 ������, �o�ǵw��d�S�� Win95 Driver � ‫�ڥ�������ڬ‬.
PC97 �W�w�F Intel ���w��]�p�p��� Microsoft �� Window �����X, �Ӥ����N�O
Window Driver! �[�W�D��O�t�i���n��u�{�v�u�|�g BIOS or 8051, �� Window Driver
�‫��ڥ‬Oť���Sť�L, �� PC97, 98 �O�������D��, �ҥH�@�w�n���|���H�Ӱ�.

�ӳo�ɭԧ‫ڤ‬S�n���t�@��Ʈw����M��(�̰‫ڳ‬Q���� MIS, ���ѻP�ƾ�, ���ľ�,


����L��). ��O�W����u�@, �Q����Y�����l��W��, �N�է�‫غ‬Ӭ‫�ݬ‬. �S�Q��
�@�իK�W, (���L�b���ծɳQ��b�굦�|�‫ݤ‬Ӥ[, ���V�W���}�ߩ�). �i�‫غ‬ӫ�, �Pı��O
Right Man in Right Place. �‫�ש‬i�H�@�i��t, ����T���‫�ؼ‬, ���A��‫׮‬ɥ�, �]���|�Q�O�H
�J���O����. �󭫭n���O�����N�P, �Q�Q�����M��, �O�n����@�ɪ����~, �ӥB�O�P�@
�ǰ�‫ڤ‬j�t�v�����~�W���ɶ�. �A�]���O�@�����‫ܮ‬w�@�\���F��. �A�̵ ‫غ‬ӥ‫ث‬e��u�H��
��, �~���X�i���t, �[�W���q���Ż�ɶ��h�D�`�����o��O, �u�n����O���H, ���ȨS�@
�E��|. ��������w���Ӧh��u, �S�����{��O����|, �B�@�E�޹D����F.

(2) �Dz� DDK ���L�{


�n�� DDK ����n�� Window �����h��¦�m�����. ��@��H��� Window SDK ��
��ȳ~, ���p�O���h���F��. �q Win31 �� Win95 �‫ܤ‬Ƥ��h�o, �‫ڭ‬ӤH�{���O:
Multitasking, Plug&Play, Memory Addressing.
���H�‫�ݧڻ‬, Memphis ����֥ X��, �‫٭‬n��\�Ҭ� Win95 or Win31 ��? �٬���{‫ڻ‬O�n!
��]�O:

a. Memphis ���O�������s��g, �z�����@���[���٬O�u�� Win95.


b. �‫ث‬e�����W�|�����j�v�Ū� Memphis ������y, �p�G���]�u�O�X��T���
����, �ӥx�W���Ѱ�, �@�̷̳
|�d�o�‫ ����ا‬A ��. �p Win31/95 �譱�w���@��
�j�v�����y, �p Andrew Scrullman, Patt Metrick, Richard Jeffery, Walter
O'ney,
Charle Patzold ���j�v. �A���h�‫ݤ‬j�v�Ū���, �Ϧӥh�� "��ּּ֧ ‫ �־‬Memphis",
"�ЧA 21 �ѾǷ| Memphis" �o��U����, �u�O�b��O�A���ɶ��Ϊ��.

�� DDK ���Ĥ@�B�dzƥ\�ҬO��^��\Ū��O�m�n, �A�O���Ѱӷ|�X��Ķ��.


�]�o��Ѫ����ۤӮt, �񤣤W VB, Delphi, JAVA�o���j���ƪ���. �A�̭
n ����
�檺 Ķ�̫���
. nĶ� n� O
� n
� ��
۷� ɶ�, ���٨줣�p�h�g�ǻ��P����, �Z�O�]�ȱo�h.

���U�ӴN�n�m��¦�u��, �p�P�i�L�Ҫ�F 6 �~�ɶ��m�n�E���u�g, ����m���X�j����


�ɥu��ƭӮɨ��N OK. �n�p��m���h��¦�O ? �Ԭ‫�ݮ‬, �� coding �� Trace �O�H�g�o sample
code�Ӥw.
�Y�ϬO �Ѥ~���� Programmer �]�O�n�‫�ݮ‬, �] Window ���O�L�]�p��, �����F�� Window
�~����k�U��
.. �ӫD���g Algorithm �譱���‫��פ‬, � �ۤv�w assumption, Lemma, �ɥX Theme, �U conclusion
�N����.
�ҥH�@�ǭ�J��|����s�ͳ̦n̦��վ
�ۤv���ߺA.

�H��� ‫ڬ‬OŪ�@�Ǥj�v�Ū���, �p:


"Window Programing" �� Charle Petzold
"Undocument Window" �t�C�� Andrew Scullman,
"Win95 system Programming Secrets" �� Matt Pietrek,
"Advanced Windows" �� Jeffery Richter
��Z���‫ܬ‬O:
Microsoft System Journal,
Doctor Dobb's Journal,
Window Developer Journal. �o����Z�O�‫ ����{ڻ‬DDK ���H���n�q�\��!
�X�G�L�� 1, 2 ��N�|�Z�n Window Device Driver ����峹, �ӥB
�z������ Paula �k�h�D�� NT �M��, �g���
�ܲ `�J, ���O�����@�Ǽк] NT "�j��R"
��������y�ү����. �b Andrew Scrullman �� "Undocument NT" �|���‫���@ݥ‬e,
���O��ı�o�̦��
` �
‫��ת‬M��.

���U�ӴN�ͻP Driver ��������Y�����:


Device Driver �����y, �‫ڱ‬q Win31 �}�l���_:
"Writing Windows Device Driver and VxD", Karen Hazzen, �� 1,2 �� �O�̾
A X
� g

Win31 Driver ���ѦҮ��y. �]���@���ե֪� "Writing Window Device Driver",
�‫�������{ڻ‬Ѧҩʫ‫ܧ‬C, �]����� Win31 DDK Function Description �N��F 50 ~
60 �X��, �� A ���.

Win95:
����M�O���� "System Programing for Win95", Walter Oney �o���d�@. �‫½]��ڴ‬
Chapter 11 ~ 13 ½��ѭ�����, �ӭ��s�A�R�@��. Walter Oney �J�X, �ֻP���W.
���o���N��F! �]�S���H���x�ӬD�ԥL.

WinNT:
�ߤ@���@��: "The NT Device Driver Book", Art Baker. �‫��ܦ‬t�Ϊ��@�B�@�B����
�p��g NT Kernal mode driver. ��‫ݳ‬o���ѵM��A�� MS �� NT DDK on Help �|
��A��e��F��. ���S�o���Ѯ�, �‫�}�ڭ‬l�� DDK Help �O�‫ݱ‬o���Y���.
�̦
n �
f �
t "Inside Windows NT", Helen Custer � @ �_ ��
, �
] ��NT ���h �
w �
g �
ɤJ
Object Oriented �[��(WDM �O�N NT Kernel mode driver �[�� Plug&Play �� Bus handle
���s�\��), �P Win95 �� Virtual Machine �[�� �‫ۮ‬t�ƻ�. �o������O 1992 �~�X��,
��� NT ���֤�߹ B�@�[�H����, �]�O�@����o���n��.

NewGroup and Web Site:


1. Win95 �O comp.os.ms-windows.programmer.vxd
2. NT ���‫ܬ‬O comp.os.ms-windows.programmer.nt.kernel-mode
3. Window Device Driver Web Site:
http://www.albany.net/~danorton/ddk
http://www.vireo.com

�o�i�u��:
1. �p��n��A��l�n�L, �@�w�n���M SoftIce for Win95/NT. �d�U���n��
MS �� WinDebug, ���‫��ڥ‬O�L�s����. SoftIce �i��A�� source code
level debuging, �靈 assembly ���߯g���H�O�@�j�֭�� .(����٬O�U���߾�
DDK ���H�٬O�n�N assembly).

2. VToolsD(for Win31/95), DriverWork (for NT/WDM)


Vireo ���q�X�� DDK Tool ��A������ C �Ӽg Driver, �‫ڥ‬u�໡�g Driver ��,
�‫ڤ‬w�g����S����. �Ѩ 䥦�٧K�O�� Class Library source code, ��� Trace ��
�ܰ���.

��쪾�� (Domain Knowledge)


�g Driver �‫ݤ‬F�ѧA�n�����
 w�, �p Driver ���Ψ� DMA/Interrupt,
��ij�A�‫�@ݤ‬U 8259, 8237A �����. �b�o�譱, "�L�q���ɭ��޳N�P��@"
�O������ѦҮ�. Programmer �`���@�ѷ| coding ���ʪ��ɭ�. ��H�Ѧ���,
�u�n�A�� Domain Knowledge ��j����, �٬O�|���\�h���q�ЧA�h��޳N�g�z.
�ӳo�]�O�A��g���~���O�� Programmer �̤
j ������. �h �
h �
‫ݨ‬Ǩ�L��x,
��IJ�@�ǫD Programming �譱�����ѨӰ�i�A�� Domain Knowledge �a!

�̫�̭��
n ���
O: ˦�
۰ ʤⰵ����������������!
�‫�ݸ‬ƬO�@�^��, ���D�O�@�^��, �����X�ӤS�O�t�~�@�^��. ���q�ЧA�Ӥ�
�O�nť�A��g�j��, �άO�o��h�ֽg�‫�פ‬. �O�n�A���ӷ|��, ��ӫ~�ƪ��F��.
���A���U�h, ����K�O, �S�䤣��O�H��, �]�S������ƥi��U. �A�[�W
�w��S�A�g�� Driver �ӵL�k�X�f��, ���‫���ش‬i�O�H���Һ�. �‫ڴ‬N�J�W�@��,
�F�賣�X��Xù��, �w�ꪺ�g�P�Ӯ�, ���G�o�{ Driver �� Bug, �L�k���Q�w��. �Ѥj
��ܻ��@�P����S�ѨM, �Xù���g�P�ӴN�n���q��(�ѧr! �X�ʸU�����), �‫ڦ‬b�Q,
�p�G��ɸѤ����N�dz���¾. ��ӯu�O���˹B, �Τ@�ӫD�`�t������k(�M�������b�b
��W�Q�쪺), �ѨM�o�� Bug, �O��q��]�O��¾��.
���o�h�Ҥl�D�n�O�^�U�@�Ǧ ۵� ư����b�Ǭ�s��, ���n�H�����۰��Ǿ�,
�N�i�H�b��|�W�@�|����(���D�ۨ�� Ǯթΰ]�Ϊk�H, �F����c��), �]���y�@�ǨS���ƤH
�Ǿ���, �u�n����O�o���¤�믫, �Ӽ˥i�H��D� �ިӺ‫�@ޤ‬s�Ӥh�u�{�v.

(3)���ӥi�઺�o�i
�‫ �ݬ‬WinTel PC98 ���W��, �N���D�H��|�g Driver ���H���Y�� ��‫ث‬e�|�� C, SDK �g�{
�����H���h, ���p�O�g Driver, ��� Driver �ä���g, �u�O Learning curve �‫�ܪ‬, �{�b�j�h
��Ǫ̩���S�@��, ���� VB, Delphi �o� RAID Tool �Ӽg�{��, ���֤����� D SDK �O��.
�󤣥λ� Window �������B�@. ���D�O�� MIS ��u, �_�h�H���l�|����L.
�N�{���
ꭱ Ӭ�: � VB, Delphi ���H�Ӧh, ����n��ӤH�Ө�N�A��¾�ȬO�‫ܮ‬e��o.
�N�վl�ӽ�, �ꤺ�� MIS �����q�񤣤W�� PC �w��, Chip set �����q, �ӥB�]�S���Ѳ��i��,
��W�h���g�‫ٳ‬W�Ҥp�S�H�Ʋ��h����줺. (�� Year 2000 �� MIS �u�{�v�i�O�Ӥj�Q�h,
�u���L�A�‫٭‬n�|�@�ǫD�`�j�Ѫ��{���y��, �Ӥ��O� VB, Delphi �N�S��)

�N���[����
�G: � ‫ث‬e�D��O���n��u�{�v�j���u�| BIOS, 8051. �‫ ������ڥ‬Windows
Driver. ���n�H���g�� softmenu �� BIOS �N�����o�N. �� PC98 �����W��N���n���.
�ҥH�b�o�Ǥ��q�������Ӧh��|����A��{�
�ۤv����O.

�P�Q:
�ꤺ�@�ǹq���@�a��b�O�Ӧn�V��l, �i�H�q VB �g�� VC, �M���٥i�H"�`�J���Q"
3D �[�t�d. �y�� VB �N�X VB ����, �@������ VC++/Borland C++ �t�g����, ���M��
�S���� MFC/OWL. �� Windows95 �@�X��, ���u�S�O�@�� Win95 �t�g�_�大�������
��. ���
�۬� ‫ݧ‬a, ��~ Memphis �X�ӮɤS�N�¨ƭ��t. ���u�p��, �٬G�N�к]���դh�Ǿ��
�㦳�g�@ 10 �X�~���g��ӯM�� �ۤv������. ���ɧ‫ڬ ݤ‬F�N�@�{�l��. ���L�o�ǤH�٤��O
�Ӽ��~�� A ��. �u�O......, �Ӱ ꤺ�@�ǹq����x�����, �j�a�߲z����, ���Χ‫ڦ‬h�. �ȱo
�‫ڨت‬A��, �j���u���J�T��, ���L�̪� @ ~
� L
� n
� �����u g
� MFC ����峹���y, �S�g��
Windows �����B�@���峹, �����o�O�_��W�� Matt Pietrek �ӥx����.
�`�k�@�y��: Ū�̭�n�ۤv�p��, �ָI�@�� "�t�g, �_��".

�̫�
, ���
j �
a ����
‫��ߥؤ‬z�Q���u�@.

You might also like