349 lines
8.6 KiB
Plaintext
349 lines
8.6 KiB
Plaintext
// Copyright (c) 1999-2001 Microsoft Corporation, All Rights Reserved
|
|
enablemapdirect3216 = true;
|
|
|
|
typedef char * LPSTR;
|
|
typedef unsigned char * LPUSTR;
|
|
typedef unsigned short * LPUSHORT;
|
|
typedef unsigned long * LPULONG;
|
|
typedef long * LPLONG;
|
|
typedef long LONG;
|
|
typedef unsigned short USHORT;
|
|
typedef unsigned long ULONG;
|
|
typedef unsigned char BYTE;
|
|
|
|
|
|
typedef void* LPVOID;
|
|
typedef USHORT WORD;
|
|
typedef ULONG DWORD;
|
|
typedef DWORD DEVNODE;
|
|
typedef DEVNODE* PDEVNODE;
|
|
typedef DWORD CMBUSTYPE;
|
|
typedef CMBUSTYPE* PCMBUSTYPE;
|
|
typedef DWORD LOG_CONF;
|
|
typedef LOG_CONF* PLOG_CONF;
|
|
typedef DWORD RES_DES;
|
|
typedef RES_DES* PRES_DES;
|
|
typedef ULONG RESOURCEID;
|
|
typedef RESOURCEID* PRESOURCEID;
|
|
typedef DWORD RANGE_LIST;
|
|
typedef DWORD* PRANGE_LIST;
|
|
typedef DWORD RANGE_ELEMENT;
|
|
typedef DWORD* PRANGE_ELEMENT;
|
|
|
|
|
|
typedef struct _LOGONDETAILS
|
|
{
|
|
ULONG AuthorizationFlags;
|
|
LONG LastLogon;
|
|
LONG LastLogoff;
|
|
LONG AccountExpires;
|
|
ULONG MaximumStorage;
|
|
USHORT UnitsPerWeek;
|
|
unsigned char LogonHours[21];
|
|
USHORT BadPasswordCount;
|
|
USHORT NumberOfLogons;
|
|
USHORT CountryCode;
|
|
USHORT CodePage;
|
|
} LOGONDETAILS, *LPLOGONDETAILS;
|
|
|
|
typedef struct _use_info_1 {
|
|
char ui1_local[8+1];
|
|
char ui1_pad_1;
|
|
char * ui1_remote;
|
|
char * ui1_password;
|
|
unsigned short ui1_status;
|
|
short ui1_asg_type;
|
|
unsigned short ui1_refcount;
|
|
unsigned short ui1_usecount;
|
|
} use_info_1;
|
|
|
|
typedef struct _use_info_1Out {
|
|
char ui1_local[8+1];
|
|
char ui1_pad_1;
|
|
char ui1_remote[15+2+1+12+2];
|
|
unsigned short ui1_status;
|
|
short ui1_asg_type;
|
|
unsigned short ui1_refcount;
|
|
unsigned short ui1_usecount;
|
|
} use_info_1Out;
|
|
|
|
/*
|
|
Format of hard disk master boot sector:
|
|
Offset Size Description (Table 0574)
|
|
00h 446 BYTEs Master bootstrap loader code
|
|
1BEh 16 BYTEs partition record for partition 1 (see #0575)
|
|
1CEh 16 BYTEs partition record for partition 2
|
|
1DEh 16 BYTEs partition record for partition 3
|
|
1EEh 16 BYTEs partition record for partition 4
|
|
1FEh WORD signature, AA55h indicates valid boot block
|
|
|
|
Format of partition record:
|
|
Offset Size Description (Table 0575)
|
|
00h BYTE boot indicator (80h = active partition)
|
|
01h BYTE partition start head
|
|
02h BYTE partition start sector (bits 0-5)
|
|
03h BYTE partition start track (bits 8,9 in bits 6,7 of sector)
|
|
04h BYTE operating system indicator (see #0576)
|
|
05h BYTE partition end head
|
|
06h BYTE partition end sector (bits 0-5)
|
|
07h BYTE partition end track (bits 8,9 in bits 6,7 of sector)
|
|
08h DWORD sectors preceding partition
|
|
0Ch DWORD length of partition in sectors
|
|
*/
|
|
|
|
typedef struct
|
|
{
|
|
BYTE cBoot;
|
|
BYTE cStartHead;
|
|
BYTE cStartSector;
|
|
BYTE cStartTrack;
|
|
BYTE cOperatingSystem;
|
|
BYTE cEndHead;
|
|
BYTE cEndSector;
|
|
BYTE cEndTrack;
|
|
DWORD dwSectorsPreceding;
|
|
DWORD dwLengthInSectors;
|
|
} PartitionRecord;
|
|
|
|
typedef struct
|
|
{
|
|
BYTE cLoader[512];
|
|
|
|
// This was changed to a BYTE [512] to deal with the packing differences
|
|
// between default packing alignment in the thunking. This is casted properly
|
|
// in win32thk.h. If the thunk compiler supported it, I'd use #pragma pack(1).
|
|
/* BYTE cLoader[446];
|
|
PartitionRecord stPartition0;
|
|
PartitionRecord stPartition1;
|
|
PartitionRecord stPartition2;
|
|
PartitionRecord stPartition3;
|
|
WORD wSignature;
|
|
*/
|
|
} MasterBootSector;
|
|
|
|
typedef struct
|
|
{
|
|
WORD wDriveType;
|
|
WORD wMaxCylinder;
|
|
WORD wMaxSector;
|
|
WORD wMaxHead;
|
|
} Int13DriveParams;
|
|
|
|
//////////////////////////////////////////////////////////////////////
|
|
ULONG CIM16GetUserInfo1(LPSTR Name, LPSTR Comment, LPSTR HomeDirectory,
|
|
LPSTR ScriptPath, LPULONG PasswordAge,
|
|
LPUSHORT Privilges, LPUSHORT Flags)
|
|
{
|
|
Name = input;
|
|
HomeDirectory = inout;
|
|
ScriptPath = inout;
|
|
Comment = inout;
|
|
PasswordAge = inout;
|
|
Privilges = inout;
|
|
Flags = inout;
|
|
}
|
|
|
|
ULONG CIM16GetUserInfo2(LPSTR Name, LPSTR FullName,
|
|
LPSTR UserComment, LPSTR Parameters,
|
|
LPSTR Workstations, LPSTR LogonServer,
|
|
LPLOGONDETAILS LogonDetails )
|
|
{
|
|
Name = input;
|
|
FullName = inout;
|
|
UserComment = inout;
|
|
Parameters = inout;
|
|
Workstations = inout;
|
|
LogonServer = inout;
|
|
LogonDetails = inout;
|
|
}
|
|
|
|
ULONG CIM16GetUserInfo1Ex(LPSTR Domain, LPSTR Name, DWORD fGetDC, LPSTR Comment, LPSTR HomeDirectory,
|
|
LPSTR ScriptPath, LPULONG PasswordAge,
|
|
LPUSHORT Privilges, LPUSHORT Flags)
|
|
{
|
|
Domain = input;
|
|
Name = input;
|
|
HomeDirectory = inout;
|
|
ScriptPath = inout;
|
|
Comment = inout;
|
|
PasswordAge = inout;
|
|
Privilges = inout;
|
|
Flags = inout;
|
|
}
|
|
|
|
ULONG CIM16GetUserInfo2Ex(LPSTR Domain, LPSTR Name, DWORD fGetDC, LPSTR FullName,
|
|
LPSTR UserComment, LPSTR Parameters,
|
|
LPSTR Workstations, LPSTR LogonServer,
|
|
LPLOGONDETAILS LogonDetails )
|
|
{
|
|
Domain = input;
|
|
Name = input;
|
|
FullName = inout;
|
|
UserComment = inout;
|
|
Parameters = inout;
|
|
Workstations = inout;
|
|
LogonServer = inout;
|
|
LogonDetails = inout;
|
|
}
|
|
|
|
ULONG CIM16GetConfigManagerStatus(LPSTR HardwareKey)
|
|
{
|
|
HardwareKey = input;
|
|
}
|
|
|
|
WORD CIM16_CM_Locate_DevNode( PDEVNODE pdn, LPSTR HardwareKey, ULONG ulFlags )
|
|
{
|
|
pdn = inout;
|
|
HardwareKey = input;
|
|
}
|
|
|
|
WORD CIM16_CM_Get_Parent( PDEVNODE pdn, DEVNODE dnChild, ULONG ulFlags )
|
|
{
|
|
pdn = inout;
|
|
}
|
|
|
|
WORD CIM16_CM_Get_Child( PDEVNODE pdn, DEVNODE dnParent, ULONG ulFlags )
|
|
{
|
|
pdn = inout;
|
|
}
|
|
|
|
WORD CIM16_CM_Get_Sibling( PDEVNODE pdn, DEVNODE dnParent, ULONG ulFlags )
|
|
{
|
|
pdn = inout;
|
|
}
|
|
|
|
WORD CIM16_CM_Read_Registry_Value( DEVNODE dnDevNode, LPSTR pszSubKey, LPSTR pszValueName, ULONG ulExpectedType, LPVOID Buffer, LPULONG pulLength, ULONG ulFlags )
|
|
{
|
|
pszSubKey = input;
|
|
pszValueName = input;
|
|
Buffer = inout;
|
|
pulLength = inout;
|
|
}
|
|
|
|
WORD CIM16_CM_Get_DevNode_Status( LPULONG pulStatus, LPULONG pulProblemNumber, DEVNODE dnDevNode, ULONG ulFlags )
|
|
{
|
|
pulStatus = inout;
|
|
pulProblemNumber = inout;
|
|
}
|
|
|
|
WORD CIM16_CM_Get_Device_ID( DEVNODE dnDevNode, LPVOID Buffer, ULONG BufferLen, ULONG ulFlags )
|
|
{
|
|
Buffer = inout;
|
|
}
|
|
|
|
WORD CIM16_CM_Get_Device_ID_Size( LPULONG pulLen, DEVNODE dnDevNode, ULONG ulFlags )
|
|
{
|
|
pulLen = inout;
|
|
}
|
|
|
|
WORD CIM16_CM_Get_First_Log_Conf( PLOG_CONF plcLogConf, DEVNODE dnDevNode, ULONG ulFlags )
|
|
{
|
|
plcLogConf = inout;
|
|
}
|
|
|
|
WORD CIM16_CM_Get_Next_Res_Des( PRES_DES prdResDes, RES_DES rdResDes, RESOURCEID ForResource, PRESOURCEID pResourceID, ULONG ulFlags )
|
|
{
|
|
prdResDes = inout;
|
|
pResourceID = inout;
|
|
}
|
|
|
|
WORD CIM16_CM_Get_Res_Des_Data_Size( LPULONG pulSize, RES_DES rdResDes, ULONG ulFlags )
|
|
{
|
|
pulSize = inout;
|
|
}
|
|
|
|
WORD CIM16_CM_Get_Res_Des_Data( RES_DES rdResDes, LPVOID Buffer, ULONG BufferLen, ULONG ulFlags )
|
|
{
|
|
Buffer = inout;
|
|
}
|
|
|
|
WORD CIM16_CM_Get_Bus_Info(DEVNODE dnDevNode, PCMBUSTYPE pbtBusType, LPULONG pulSizeOfInfo, LPVOID pInfo, ULONG ulFlags)
|
|
{
|
|
pbtBusType = inout;
|
|
pulSizeOfInfo = inout;
|
|
pInfo = inout;
|
|
}
|
|
|
|
WORD CIM16_CM_Query_Arbitrator_Free_Data(PRANGE_LIST pList, ULONG DataLen, DEVNODE dnDevInst, RESOURCEID ResourceID, ULONG ulFlags)
|
|
{
|
|
pList = inout;
|
|
}
|
|
|
|
WORD CIM16_CM_Delete_Range(ULONG ulStartValue, ULONG ulEndValue, RANGE_LIST rlh, ULONG ulFlags)
|
|
{
|
|
}
|
|
|
|
WORD CIM16_CM_First_Range(RANGE_LIST rlh, LPULONG pulStart, LPULONG pulEnd, PRANGE_ELEMENT preElement, ULONG ulFlags)
|
|
{
|
|
pulStart = inout;
|
|
pulEnd = inout;
|
|
preElement = inout;
|
|
}
|
|
|
|
WORD CIM16_CM_Next_Range(PRANGE_ELEMENT preElement, LPULONG pulStart, LPULONG pullEnd, ULONG ulFlags)
|
|
{
|
|
preElement = inout;
|
|
pulStart = inout;
|
|
pullEnd = inout;
|
|
}
|
|
|
|
WORD CIM16_CM_Free_Range_List(RANGE_LIST rlh, ULONG ulFlags)
|
|
{
|
|
}
|
|
|
|
BYTE CIM16GetDrivePartitions(BYTE cDrive, MasterBootSector *MBR)
|
|
{
|
|
MBR = output;
|
|
}
|
|
|
|
BYTE CIM16GetDriveParams(BYTE cDrive, Int13DriveParams *Params)
|
|
{
|
|
Params = output;
|
|
}
|
|
|
|
WORD CIM16GetBiosUnit(LPSTR lpDeviceID)
|
|
{
|
|
lpDeviceID = input;
|
|
}
|
|
|
|
DWORD CIM16GetFreeSpace( DWORD option )
|
|
{
|
|
}
|
|
|
|
ULONG CIM16GetUseInfo1(
|
|
LPSTR Name,
|
|
LPSTR Local,
|
|
LPSTR Remote,
|
|
LPSTR Password,
|
|
LPULONG pdwStatus,
|
|
LPULONG pdwType,
|
|
LPULONG pdwRefCount,
|
|
LPULONG pdwUseCount)
|
|
{
|
|
Name = input;
|
|
Local = inout;
|
|
Remote = inout;
|
|
Password = inout;
|
|
pdwStatus = inout;
|
|
pdwType = inout;
|
|
pdwRefCount = inout;
|
|
pdwUseCount = inout;
|
|
}
|
|
|
|
ULONG CIM16NetUseEnum(
|
|
LPSTR pszServer,
|
|
short sLevel,
|
|
LPSTR pbBuffer,
|
|
use_info_1Out *pbBuffer2,
|
|
unsigned short cbBuffer,
|
|
unsigned short *pcEntriesRead,
|
|
unsigned short *pcTotalAvail
|
|
)
|
|
{
|
|
pszServer = input;
|
|
pbBuffer = output;
|
|
pbBuffer2 = output;
|
|
pcEntriesRead = output;
|
|
pcTotalAvail = output;
|
|
}
|