summaryrefslogtreecommitdiffstats
path: root/private/unimodem/new/mic/notes.txt
diff options
context:
space:
mode:
authorAdam <you@example.com>2020-05-17 05:51:50 +0200
committerAdam <you@example.com>2020-05-17 05:51:50 +0200
commite611b132f9b8abe35b362e5870b74bce94a1e58e (patch)
treea5781d2ec0e085eeca33cf350cf878f2efea6fe5 /private/unimodem/new/mic/notes.txt
downloadNT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.tar
NT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.tar.gz
NT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.tar.bz2
NT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.tar.lz
NT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.tar.xz
NT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.tar.zst
NT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.zip
Diffstat (limited to 'private/unimodem/new/mic/notes.txt')
-rw-r--r--private/unimodem/new/mic/notes.txt231
1 files changed, 231 insertions, 0 deletions
diff --git a/private/unimodem/new/mic/notes.txt b/private/unimodem/new/mic/notes.txt
new file mode 100644
index 000000000..08a196351
--- /dev/null
+++ b/private/unimodem/new/mic/notes.txt
@@ -0,0 +1,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:
+
+}