summaryrefslogtreecommitdiffstats
path: root/private/unimodem/new/mic/notes.txt
blob: 08a196351fc3fe3d3934e9f101bd8de2bd9e663e (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
Modem Inf Compiler -- MIC
-------------------------

History:
	5/18/96 JosephJ	Created

Files:
	

Classes:

-------------------------------
	CIniFile
			Bind(FilePath pFilePath)
			Out(FilePath pFilePath)
			Section(szName)
			UnBind()
			Name

	CIniFileSection
			CIniFileSection
			EntryIterator
			Out(HFILE);
			Name
			Line

	CIniFileEntry
			Name
			RHS
			Out(HFILE);
			Line

	CIniFileEntryIterator
			NextEntry

	CIniFileLine
			//Can be one of: blank, annotations, section-header,
			//	entry, entry-continuation, or unknown
		    //State can be one of: ok, warning, error(%d)
			Type
			State
			Text


	CIniFileAnnotation

-------------------------------

	CInfFile

	CIniFile


	CInfDevice

	CSymbolTable
		Lookup

	CSymbol
		GetText
		GetTextLength

	CInfAddRegList
	CInfCopyFileList

	CInfRank

	CDisplay

--------------------------------

CModemDevice::CreateModem(CInfFile *pInf, CDeviceLocation *pDevLoc)
{
	// GetVersion
	pInf->Version 

	// Get manufacturer
	ptbszManufacturer = pDevLoc->ptbszManufacturer;

	// Get Device name.
	ptbszName = pDevLoc->Name

	// Get InstallSection
	pInstallSec = pInf->InstallSection(pDevice->ptbszInstallSection);

	// Walk Addreg list
	{
		DWORD rgdwChecksum[MAX];
		CAddregIterator pAddregIter = pDevLoc->AddregIterator();

		for (int i=0, CAddreg pAddReg=0;(pAddreg=pAddregIter->Iterate());i++)
		{
			// For mow, add checksum to array
			rgdwChecksum[i++] = pAddreg->Checksum();
		}

		// Compute Addreg checksum
		::CRC16((LPBYTE)rgdwChecksum, (i)? (i-1) : 0);
	}

	// Walk other list...
	// Copyfiles
	{
	}

}
-------------------------------

Files

Class headers:
	inf.h		CIniFile
	ini.h		CInfFile
	device.h	CInfDevice
	sym.h		CInfSymbol
---------------------------------

class CGenericIterator
{

public:
	CGenericIterator(void * pData, const CGenericIterator *pNext)
									{m_pData=pData; m_pNext = pNext;}
	~CGenericIterator();

	const	CGenericIterator	* Next (void) const {return pNext;}
			void  		   		* Data (void) const {return pData;}

private:

	const CGenericIterator * m_pNext;
	void	 		   * m_pNext;
};

for (; pIter, pIter = pIter->Next())
{
	const CAddregSection * pAddreg = (const CAddregSection *) pIter;
	// blah blah...
}

	CInfString
------------------------------------------

CSyncObject

	Load
	Unload

	DWORD OpenSession(void)
	void  CloseSession(DWORD)

	EnterCrit
	LeaveCrit

private:
	CRITICAL_SECTION
	Slist	EventList
	UINT	uRefCount;
	enum {UNLOADED, MARKED_FOR_UNLOAD, LOADED} eState;

--------------------------------------------------
[Support APIs from sdk\inc\setupi.h]
SetupGetInfInformation
SetupQueryInfFileInformation	useful?
SetupQueryInfVersionInformation	useful?
SetupGetInfFileList				useful?
SetupOpenInfFile
SetupOpenMasterInf
SetupOpenAppendInfFileW
SetupCloseInfFile
SetupFindFirstLineA				useful?
SetupFindNextLine				useful?
SetupFindNextMatchLine			useful?
SetupGetLineByIndex				useful?
SetupGetLineCount				useful?
SetupGetLineText				useful?
SetupGetFieldCount				useful?
SetupGetStringField				useful?
SetupGetIntField				useful?
SetupGetMultiSzField			useful?
SetupGetBinaryField				useful?
SetupGetFileCompressionInfo
SetupGetSourceFileLocation		useful?
SetupGetSourceFileSize
SetupGetTargetPath				useful?
Error codes:
	Inf parse outcomes:
		ERROR_EXPECTED_SECTION_NAME
		ERROR_BAD_SECTION_NAME_LINE
		ERROR_SECTION_NAME_TOO_LONG
		ERROR_GENERAL_SYNTAX

	Inf runtime errors:
		ERROR_WRONG_INF_STYLE
		ERROR_SECTION_NOT_FOUND
		ERROR_LINE_NOT_FOUND
--------------------
6/9/96

Inf:Load:

-- Read Version Information
-- Read Manufacturer List Section 
	Read  Manufacturer Entry
		Read Manufacturer Section
			Read Model Entry
				Read Install Section
					Read AddregSection
						...
				Read ControlFlags section

---------
6/12/96
-- concept of a Validate member function for each class:
BOOL Validate(void)
{
	if (!this) return FALSE;

	_try
	{
		test other things, like an object-type signature (each object can
		have an object-type signature, which is assigned by the constructur
		and cleared by the destructor.
	}
	_except(....)
	{
	}

end:
	
}