- npapi.h: Correct definitions of function pointer prototypes.

- ntifs.h & cmdata.h : Don't use array size of 0. Fixes C4200.
- wdm.h: Correct definition of 64-bit SLIST_HEADER. Add explicit casts to avoid /W4 warnings in RtlEnlargedUnsignedDivide.
- winddk.h: Add MSVC intrinsic __readfsbyte for KeGetCurrentProcessorNumber. Misc fixes.
- Fix various msvc issues in cmd, setupapi, usetup, win32csr, winlogon, msafd, ws2_32 and ext2lib, most notably:
  - cmd & doskey: Don't use fishy gcc extension to allocate variable-sized arrays from the stack. Use the heap instead.
- Disable warning C4733 for mingw_main too (was only done for mingw_wmain previously).
- advapi32: Pass the correct handles to TRACE -- spotted by MSVC.
- Set the specified register in ecx in MSVC versions of Ke386Wrmsr and Ke386Rdmsr instead of reading from/writing to a random MSR. Yay /W4.

svn path=/trunk/; revision=42342
This commit is contained in:
Stefan Ginsberg 2009-08-02 17:38:27 +00:00
parent 3283ffdef8
commit 93109445ba
27 changed files with 181 additions and 100 deletions

View file

@ -19,15 +19,27 @@ static VOID SetInsert(DWORD dwFlag)
static VOID PrintHistory(VOID) static VOID PrintHistory(VOID)
{ {
DWORD Length = GetConsoleCommandHistoryLength(pszExeName); DWORD Length = GetConsoleCommandHistoryLength(pszExeName);
DWORD BufferLength;
PBYTE HistBuf;
TCHAR *Hist;
TCHAR *HistEnd;
/* On Windows, the ANSI version of GetConsoleCommandHistory requires /* On Windows, the ANSI version of GetConsoleCommandHistory requires
* a buffer twice as large as the actual history length. */ * a buffer twice as large as the actual history length. */
BYTE HistBuf[Length * (sizeof(WCHAR) / sizeof(TCHAR))]; BufferLength = Length * (sizeof(WCHAR) / sizeof(TCHAR)) * sizeof(BYTE);
TCHAR *Hist = (TCHAR *)HistBuf;
TCHAR *HistEnd = (TCHAR *)&HistBuf[Length];
if (GetConsoleCommandHistory(Hist, sizeof HistBuf, pszExeName)) HistBuf = HeapAlloc(GetProcessHeap(),
HEAP_ZERO_MEMORY,
BufferLength);
if (!HistBuf) return;
Hist = (TCHAR *)HistBuf;
HistEnd = (TCHAR *)&HistBuf[Length];
if (GetConsoleCommandHistory(Hist, BufferLength, pszExeName))
for (; Hist < HistEnd; Hist += _tcslen(Hist) + 1) for (; Hist < HistEnd; Hist += _tcslen(Hist) + 1)
_tprintf(_T("%s\n"), Hist); _tprintf(_T("%s\n"), Hist);
HeapFree(GetProcessHeap(), 0, HistBuf);
} }
static INT SetMacro(LPTSTR definition) static INT SetMacro(LPTSTR definition)
@ -65,23 +77,39 @@ static INT SetMacro(LPTSTR definition)
static VOID PrintMacros(LPTSTR pszExeName, LPTSTR Indent) static VOID PrintMacros(LPTSTR pszExeName, LPTSTR Indent)
{ {
DWORD Length = GetConsoleAliasesLength(pszExeName); DWORD Length = GetConsoleAliasesLength(pszExeName);
BYTE AliasBuf[Length]; PBYTE AliasBuf;
TCHAR *Alias = (TCHAR *)AliasBuf; TCHAR *Alias;
TCHAR *AliasEnd = (TCHAR *)&AliasBuf[Length]; TCHAR *AliasEnd;
if (GetConsoleAliases(Alias, sizeof AliasBuf, pszExeName)) AliasBuf = HeapAlloc(GetProcessHeap(),
HEAP_ZERO_MEMORY,
Length * sizeof(BYTE));
if (!AliasBuf) return;
Alias = (TCHAR *)AliasBuf;
AliasEnd = (TCHAR *)&AliasBuf[Length];
if (GetConsoleAliases(Alias, Length * sizeof(BYTE), pszExeName))
for (; Alias < AliasEnd; Alias += _tcslen(Alias) + 1) for (; Alias < AliasEnd; Alias += _tcslen(Alias) + 1)
_tprintf(_T("%s%s\n"), Indent, Alias); _tprintf(_T("%s%s\n"), Indent, Alias);
HeapFree(GetProcessHeap(), 0, AliasBuf);
} }
static VOID PrintAllMacros(VOID) static VOID PrintAllMacros(VOID)
{ {
DWORD Length = GetConsoleAliasExesLength(); DWORD Length = GetConsoleAliasExesLength();
BYTE ExeNameBuf[Length]; PBYTE ExeNameBuf;
TCHAR *ExeName = (TCHAR *)ExeNameBuf; TCHAR *ExeName;
TCHAR *ExeNameEnd = (TCHAR *)&ExeNameBuf[Length]; TCHAR *ExeNameEnd;
if (GetConsoleAliasExes(ExeName, sizeof ExeNameBuf)) ExeNameBuf = HeapAlloc(GetProcessHeap(),
HEAP_ZERO_MEMORY,
Length * sizeof(BYTE));
if (!ExeNameBuf) return;
ExeName = (TCHAR *)ExeNameBuf;
ExeNameEnd = (TCHAR *)&ExeNameBuf[Length];
if (GetConsoleAliasExes(ExeName, Length * sizeof(BYTE)))
{ {
for (; ExeName < ExeNameEnd; ExeName += _tcslen(ExeName) + 1) for (; ExeName < ExeNameEnd; ExeName += _tcslen(ExeName) + 1)
{ {
@ -90,6 +118,8 @@ static VOID PrintAllMacros(VOID)
_tprintf(_T("\n")); _tprintf(_T("\n"));
} }
} }
HeapFree(GetProcessHeap(), 0, ExeNameBuf);
} }
static VOID ReadFromFile(LPTSTR param) static VOID ReadFromFile(LPTSTR param)

View file

@ -3133,6 +3133,7 @@ PAGE_NUMBER
FileCopyPage(PINPUT_RECORD Ir) FileCopyPage(PINPUT_RECORD Ir)
{ {
COPYCONTEXT CopyContext; COPYCONTEXT CopyContext;
unsigned int mem_bar_width;
MUIDisplayPage(FILE_COPY_PAGE); MUIDisplayPage(FILE_COPY_PAGE);
@ -3153,7 +3154,7 @@ FileCopyPage(PINPUT_RECORD Ir)
MUIGetString(STRING_SETUPCOPYINGFILES)); MUIGetString(STRING_SETUPCOPYINGFILES));
// fit memory bars to screen width, distribute them uniform // fit memory bars to screen width, distribute them uniform
unsigned int mem_bar_width = (xScreen - 26) / 5; mem_bar_width = (xScreen - 26) / 5;
mem_bar_width -= mem_bar_width % 2; // make even mem_bar_width -= mem_bar_width % 2; // make even
/* ATTENTION: The following progress bars are debug stuff, which should not be translated!! */ /* ATTENTION: The following progress bars are debug stuff, which should not be translated!! */
/* Create the paged pool progress bar */ /* Create the paged pool progress bar */

View file

@ -484,15 +484,24 @@ Execute (LPTSTR Full, LPTSTR First, LPTSTR Rest, PARSED_COMMAND *Cmd)
INT INT
DoCommand(LPTSTR first, LPTSTR rest, PARSED_COMMAND *Cmd) DoCommand(LPTSTR first, LPTSTR rest, PARSED_COMMAND *Cmd)
{ {
TCHAR com[_tcslen(first) + _tcslen(rest) + 2]; /* full command line */ TCHAR *com;
TCHAR *cp; TCHAR *cp;
LPTSTR param; /* pointer to command's parameters */ LPTSTR param; /* pointer to command's parameters */
INT cl; INT cl;
LPCOMMAND cmdptr; LPCOMMAND cmdptr;
BOOL nointernal = FALSE; BOOL nointernal = FALSE;
INT ret;
TRACE ("DoCommand: (\'%s\' \'%s\')\n", debugstr_aw(first), debugstr_aw(rest)); TRACE ("DoCommand: (\'%s\' \'%s\')\n", debugstr_aw(first), debugstr_aw(rest));
/* full command line */
com = cmd_alloc((_tcslen(first) + _tcslen(rest) + 2) * sizeof(TCHAR));
if (com == NULL)
{
error_out_of_memory();
return 1;
}
/* If present in the first word, these characters end the name of an /* If present in the first word, these characters end the name of an
* internal command and become the beginning of its parameters. */ * internal command and become the beginning of its parameters. */
cp = first + _tcscspn(first, _T("\t +,/;=[]")); cp = first + _tcscspn(first, _T("\t +,/;=[]"));
@ -526,11 +535,15 @@ DoCommand(LPTSTR first, LPTSTR rest, PARSED_COMMAND *Cmd)
if (_tcsicmp(cmdptr->name, _T("echo")) != 0) if (_tcsicmp(cmdptr->name, _T("echo")) != 0)
while (_istspace(*param)) while (_istspace(*param))
param++; param++;
return cmdptr->func(param); ret = cmdptr->func(param);
cmd_free(com);
return ret;
} }
} }
return Execute(com, first, rest, Cmd); ret = Execute(com, first, rest, Cmd);
cmd_free(com);
return ret;
} }

View file

@ -125,20 +125,36 @@ static VOID ConWrite(TCHAR *str, DWORD len, DWORD nStdHandle)
if (bUnicodeOutput) if (bUnicodeOutput)
{ {
#ifndef _UNICODE #ifndef _UNICODE
WCHAR buffer[len]; WCHAR *buffer = cmd_alloc(len * sizeof(WCHAR));
if (!buffer)
{
error_out_of_memory();
return;
}
len = MultiByteToWideChar(OutputCodePage, 0, str, len, buffer, len, NULL, NULL); len = MultiByteToWideChar(OutputCodePage, 0, str, len, buffer, len, NULL, NULL);
str = (PVOID)buffer; str = (PVOID)buffer;
#endif #endif
WriteFile(hOutput, str, len * sizeof(WCHAR), &dwWritten, NULL); WriteFile(hOutput, str, len * sizeof(WCHAR), &dwWritten, NULL);
#ifndef _UNICODE
cmd_free(buffer);
#endif
} }
else else
{ {
#ifdef _UNICODE #ifdef _UNICODE
CHAR buffer[len * MB_LEN_MAX]; CHAR *buffer = cmd_alloc(len * MB_LEN_MAX * sizeof(CHAR));
if (!buffer)
{
error_out_of_memory();
return;
}
len = WideCharToMultiByte(OutputCodePage, 0, str, len, buffer, len * MB_LEN_MAX, NULL, NULL); len = WideCharToMultiByte(OutputCodePage, 0, str, len, buffer, len * MB_LEN_MAX, NULL, NULL);
str = (PVOID)buffer; str = (PVOID)buffer;
#endif #endif
WriteFile(hOutput, str, len, &dwWritten, NULL); WriteFile(hOutput, str, len, &dwWritten, NULL);
#ifdef _UNICODE
cmd_free(buffer);
#endif
} }
} }

View file

@ -25,6 +25,7 @@ INT CommandMemory (LPTSTR param)
TCHAR szAvailPageFile[40]; TCHAR szAvailPageFile[40];
TCHAR szTotalVirtual[40]; TCHAR szTotalVirtual[40];
TCHAR szAvailVirtual[40]; TCHAR szAvailVirtual[40];
BOOL (WINAPI *GlobalMemoryStatusEx)(LPMEMORYSTATUSEX);
if (!_tcsncmp (param, _T("/?"), 2)) if (!_tcsncmp (param, _T("/?"), 2))
{ {
@ -32,8 +33,8 @@ INT CommandMemory (LPTSTR param)
return 0; return 0;
} }
BOOL (WINAPI *GlobalMemoryStatusEx)(LPMEMORYSTATUSEX) GlobalMemoryStatusEx
= GetProcAddress(GetModuleHandle(_T("KERNEL32")), "GlobalMemoryStatusEx"); = (BOOL (WINAPI *)(LPMEMORYSTATUSEX))GetProcAddress(GetModuleHandle(_T("KERNEL32")), "GlobalMemoryStatusEx");
if (GlobalMemoryStatusEx) if (GlobalMemoryStatusEx)
{ {
msex.dwLength = sizeof(MEMORYSTATUSEX); msex.dwLength = sizeof(MEMORYSTATUSEX);

View file

@ -38,7 +38,8 @@
/* /*
* get a character out-of-band and honor Ctrl-Break characters * get a character out-of-band and honor Ctrl-Break characters
*/ */
TCHAR cgetchar (VOID) TCHAR
cgetchar (VOID)
{ {
HANDLE hInput = GetStdHandle (STD_INPUT_HANDLE); HANDLE hInput = GetStdHandle (STD_INPUT_HANDLE);
INPUT_RECORD irBuffer; INPUT_RECORD irBuffer;

View file

@ -39,9 +39,9 @@ static BOOL CreateJunction(LPCTSTR LinkName, LPCTSTR TargetName)
HMODULE hNTDLL = GetModuleHandle(_T("NTDLL")); HMODULE hNTDLL = GetModuleHandle(_T("NTDLL"));
BOOLEAN (WINAPI *RtlDosPathNameToNtPathName_U)(PCWSTR, PUNICODE_STRING, PCWSTR *, CURDIR *) BOOLEAN (WINAPI *RtlDosPathNameToNtPathName_U)(PCWSTR, PUNICODE_STRING, PCWSTR *, CURDIR *)
= (BOOLEAN (WINAPI *)())GetProcAddress(hNTDLL, "RtlDosPathNameToNtPathName_U"); = (BOOLEAN (WINAPI *)(PCWSTR, PUNICODE_STRING, PCWSTR *, CURDIR *))GetProcAddress(hNTDLL, "RtlDosPathNameToNtPathName_U");
VOID (WINAPI *RtlFreeUnicodeString)(PUNICODE_STRING) VOID (WINAPI *RtlFreeUnicodeString)(PUNICODE_STRING)
= (VOID (WINAPI *)())GetProcAddress(hNTDLL, "RtlFreeUnicodeString"); = (VOID (WINAPI *)(PUNICODE_STRING))GetProcAddress(hNTDLL, "RtlFreeUnicodeString");
TCHAR TargetFullPath[MAX_PATH]; TCHAR TargetFullPath[MAX_PATH];
#ifdef UNICODE #ifdef UNICODE
@ -177,9 +177,9 @@ cmd_mklink(LPTSTR param)
* so load dynamically */ * so load dynamically */
BOOL (WINAPI *CreateSymbolicLink)(LPCTSTR, LPCTSTR, DWORD) BOOL (WINAPI *CreateSymbolicLink)(LPCTSTR, LPCTSTR, DWORD)
#ifdef UNICODE #ifdef UNICODE
= (BOOL (WINAPI *)())GetProcAddress(hKernel32, "CreateSymbolicLinkW"); = (BOOL (WINAPI *)(LPCTSTR, LPCTSTR, DWORD))GetProcAddress(hKernel32, "CreateSymbolicLinkW");
#else #else
= (BOOL (WINAPI *)())GetProcAddress(hKernel32, "CreateSymbolicLinkA"); = (BOOL (WINAPI *)(LPCTSTR, LPCTSTR, DWORD))GetProcAddress(hKernel32, "CreateSymbolicLinkA");
#endif #endif
if (CreateSymbolicLink && CreateSymbolicLink(Name[0], Name[1], Flags)) if (CreateSymbolicLink && CreateSymbolicLink(Name[0], Name[1], Flags))
{ {
@ -193,9 +193,9 @@ cmd_mklink(LPTSTR param)
* so load dynamically */ * so load dynamically */
BOOL (WINAPI *CreateHardLink)(LPCTSTR, LPCTSTR, LPSECURITY_ATTRIBUTES) BOOL (WINAPI *CreateHardLink)(LPCTSTR, LPCTSTR, LPSECURITY_ATTRIBUTES)
#ifdef UNICODE #ifdef UNICODE
= (BOOL (WINAPI *)())GetProcAddress(hKernel32, "CreateHardLinkW"); = (BOOL (WINAPI *)(LPCTSTR, LPCTSTR, LPSECURITY_ATTRIBUTES))GetProcAddress(hKernel32, "CreateHardLinkW");
#else #else
= (BOOL (WINAPI *)())GetProcAddress(hKernel32, "CreateHardLinkA"); = (BOOL (WINAPI *)(LPCTSTR, LPCTSTR, LPSECURITY_ATTRIBUTES))GetProcAddress(hKernel32, "CreateHardLinkA");
#endif #endif
if (CreateHardLink && CreateHardLink(Name[0], Name[1], NULL)) if (CreateHardLink && CreateHardLink(Name[0], Name[1], NULL))
{ {

View file

@ -326,10 +326,11 @@ static PARSED_COMMAND *ParseBlock(REDIRECTION *RedirList)
static PARSED_COMMAND *ParseIf(void) static PARSED_COMMAND *ParseIf(void)
{ {
PARSED_COMMAND *Cmd = cmd_alloc(sizeof(PARSED_COMMAND)); PARSED_COMMAND *Cmd = cmd_alloc(sizeof(PARSED_COMMAND));
int Type;
memset(Cmd, 0, sizeof(PARSED_COMMAND)); memset(Cmd, 0, sizeof(PARSED_COMMAND));
Cmd->Type = C_IF; Cmd->Type = C_IF;
int Type = CurrentTokenType; Type = CurrentTokenType;
if (_tcsicmp(CurrentToken, _T("/I")) == 0) if (_tcsicmp(CurrentToken, _T("/I")) == 0)
{ {
Cmd->If.Flags |= IFFLAG_IGNORECASE; Cmd->If.Flags |= IFFLAG_IGNORECASE;
@ -619,8 +620,9 @@ static PARSED_COMMAND *ParsePrimary(void)
if (CurChar == _T('@')) if (CurChar == _T('@'))
{ {
PARSED_COMMAND *Cmd;
ParseChar(); ParseChar();
PARSED_COMMAND *Cmd = cmd_alloc(sizeof(PARSED_COMMAND)); Cmd = cmd_alloc(sizeof(PARSED_COMMAND));
Cmd->Type = C_QUIET; Cmd->Type = C_QUIET;
Cmd->Next = NULL; Cmd->Next = NULL;
/* @ acts like a unary operator with low precedence, /* @ acts like a unary operator with low precedence,

View file

@ -34,7 +34,7 @@ PlayLogonSoundThread(
DWORD dwSize = sizeof(szBuffer); DWORD dwSize = sizeof(szBuffer);
HMODULE hLibrary; HMODULE hLibrary;
SERVICE_STATUS_PROCESS Info; SERVICE_STATUS_PROCESS Info;
typedef BOOL WINAPI (*PLAYSOUNDW)(LPCWSTR,HMODULE,DWORD); typedef BOOL (WINAPI *PLAYSOUNDW)(LPCWSTR,HMODULE,DWORD);
PLAYSOUNDW Play; PLAYSOUNDW Play;
ULONG Index = 0; ULONG Index = 0;

View file

@ -332,7 +332,7 @@ OnPaint(HWND hwnd, PPREVIEW_DATA pPreviewData)
hUser32 = LoadLibrary(_T("user32.dll")); hUser32 = LoadLibrary(_T("user32.dll"));
if(hUser32 == NULL) if(hUser32 == NULL)
return FALSE; return;
DrawCaptionTemp = (DCT_PROC)GetProcAddress(hUser32, (LPCSTR)DCT_ORD); DrawCaptionTemp = (DCT_PROC)GetProcAddress(hUser32, (LPCSTR)DCT_ORD);
DrawMenuBarTemp = (DMBT_PROC)GetProcAddress(hUser32, (LPCSTR)DMBT_ORD); DrawMenuBarTemp = (DMBT_PROC)GetProcAddress(hUser32, (LPCSTR)DMBT_ORD);

View file

@ -626,11 +626,10 @@ INT_PTR CALLBACK
SettingsPageProc(IN HWND hwndDlg, IN UINT uMsg, IN WPARAM wParam, IN LPARAM lParam) SettingsPageProc(IN HWND hwndDlg, IN UINT uMsg, IN WPARAM wParam, IN LPARAM lParam)
{ {
PGLOBAL_DATA pGlobalData; PGLOBAL_DATA pGlobalData;
TCHAR Message[1024], Title[256];
pGlobalData = (PGLOBAL_DATA)GetWindowLongPtr(hwndDlg, DWLP_USER); pGlobalData = (PGLOBAL_DATA)GetWindowLongPtr(hwndDlg, DWLP_USER);
TCHAR Message[1024], Title[256];
switch(uMsg) switch(uMsg)
{ {
case WM_INITDIALOG: case WM_INITDIALOG:

View file

@ -188,9 +188,11 @@ CreateKeyboardLayoutList(HWND hItemsList)
while (RegEnumKeyEx(hKey, dwIndex, szLayoutID, &dwSize, NULL, NULL, NULL, NULL) == ERROR_SUCCESS) while (RegEnumKeyEx(hKey, dwIndex, szLayoutID, &dwSize, NULL, NULL, NULL, NULL) == ERROR_SUCCESS)
{ {
INT iIndex;
GetLayoutName(szLayoutID, KeyName); GetLayoutName(szLayoutID, KeyName);
INT iIndex = (INT) SendMessage(hItemsList, CB_ADDSTRING, 0, (LPARAM)KeyName); iIndex = (INT) SendMessage(hItemsList, CB_ADDSTRING, 0, (LPARAM)KeyName);
pstrLayoutID = (PTSTR)HeapAlloc(hProcessHeap, 0, sizeof(szLayoutID)); pstrLayoutID = (PTSTR)HeapAlloc(hProcessHeap, 0, sizeof(szLayoutID));
lstrcpy(pstrLayoutID, szLayoutID); lstrcpy(pstrLayoutID, szLayoutID);

View file

@ -4104,7 +4104,7 @@ RegQueryValueExW(HKEY hkeyorg,
static const int info_size = offsetof( KEY_VALUE_PARTIAL_INFORMATION, Data ); static const int info_size = offsetof( KEY_VALUE_PARTIAL_INFORMATION, Data );
TRACE("(%p,%s,%p,%p,%p,%p=%d)\n", TRACE("(%p,%s,%p,%p,%p,%p=%d)\n",
hkey, debugstr_w(name), reserved, type, data, count, hkeyorg, debugstr_w(name), reserved, type, data, count,
(count && data) ? *count : 0 ); (count && data) ? *count : 0 );
if ((data && !count) || reserved) return ERROR_INVALID_PARAMETER; if ((data && !count) || reserved) return ERROR_INVALID_PARAMETER;
@ -4885,7 +4885,7 @@ RegSetValueA(HKEY hKeyOriginal,
DWORD ret; DWORD ret;
NTSTATUS Status; NTSTATUS Status;
TRACE("(%p,%s,%d,%s,%d)\n", hKey, debugstr_a(lpSubKey), dwType, debugstr_a(lpData), cbData ); TRACE("(%p,%s,%d,%s,%d)\n", hKeyOriginal, debugstr_a(lpSubKey), dwType, debugstr_a(lpData), cbData );
if (dwType != REG_SZ || !lpData) return ERROR_INVALID_PARAMETER; if (dwType != REG_SZ || !lpData) return ERROR_INVALID_PARAMETER;

View file

@ -683,7 +683,7 @@ WSPSelect(int nfds,
fd_set *readfds, fd_set *readfds,
fd_set *writefds, fd_set *writefds,
fd_set *exceptfds, fd_set *exceptfds,
struct timeval *timeout, const LPTIMEVAL timeout,
LPINT lpErrno) LPINT lpErrno)
{ {
IO_STATUS_BLOCK IOSB; IO_STATUS_BLOCK IOSB;

View file

@ -1409,6 +1409,17 @@ HKEY WINAPI SetupDiCreateDevRegKeyW(
{ {
struct DeviceInfoSet *set = (struct DeviceInfoSet *)DeviceInfoSet; struct DeviceInfoSet *set = (struct DeviceInfoSet *)DeviceInfoSet;
HKEY key = INVALID_HANDLE_VALUE; HKEY key = INVALID_HANDLE_VALUE;
LPWSTR lpGuidString = NULL;
LPWSTR DriverKey = NULL; /* {GUID}\Index */
LPWSTR pDeviceInstance; /* Points into DriverKey, on the Index field */
DWORD Index; /* Index used in the DriverKey name */
DWORD rc;
HKEY hHWProfileKey = INVALID_HANDLE_VALUE;
HKEY hEnumKey = NULL;
HKEY hClassKey = NULL;
HKEY hDeviceKey = INVALID_HANDLE_VALUE;
HKEY hKey = NULL;
HKEY RootKey;
TRACE("%p %p %lu %lu %lu %p %s\n", DeviceInfoSet, DeviceInfoData, Scope, TRACE("%p %p %lu %lu %lu %p %s\n", DeviceInfoSet, DeviceInfoData, Scope,
HwProfile, KeyType, InfHandle, debugstr_w(InfSectionName)); HwProfile, KeyType, InfHandle, debugstr_w(InfSectionName));
@ -1450,18 +1461,6 @@ HKEY WINAPI SetupDiCreateDevRegKeyW(
return INVALID_HANDLE_VALUE; return INVALID_HANDLE_VALUE;
} }
LPWSTR lpGuidString = NULL;
LPWSTR DriverKey = NULL; /* {GUID}\Index */
LPWSTR pDeviceInstance; /* Points into DriverKey, on the Index field */
DWORD Index; /* Index used in the DriverKey name */
DWORD rc;
HKEY hHWProfileKey = INVALID_HANDLE_VALUE;
HKEY hEnumKey = NULL;
HKEY hClassKey = NULL;
HKEY hDeviceKey = INVALID_HANDLE_VALUE;
HKEY hKey = NULL;
HKEY RootKey;
if (Scope == DICS_FLAG_GLOBAL) if (Scope == DICS_FLAG_GLOBAL)
RootKey = set->HKLM; RootKey = set->HKLM;
else /* Scope == DICS_FLAG_CONFIGSPECIFIC */ else /* Scope == DICS_FLAG_CONFIGSPECIFIC */
@ -1670,6 +1669,7 @@ BOOL WINAPI SetupDiCreateDeviceInfoW(
{ {
struct DeviceInfoSet *set = (struct DeviceInfoSet *)DeviceInfoSet; struct DeviceInfoSet *set = (struct DeviceInfoSet *)DeviceInfoSet;
BOOL ret = FALSE; BOOL ret = FALSE;
SP_DEVINFO_DATA DevInfo;
TRACE("%p %s %s %s %p %x %p\n", DeviceInfoSet, debugstr_w(DeviceName), TRACE("%p %s %s %s %p %x %p\n", DeviceInfoSet, debugstr_w(DeviceName),
debugstr_guid(ClassGuid), debugstr_w(DeviceDescription), debugstr_guid(ClassGuid), debugstr_w(DeviceDescription),
@ -1708,8 +1708,6 @@ BOOL WINAPI SetupDiCreateDeviceInfoW(
return FALSE; return FALSE;
} }
SP_DEVINFO_DATA DevInfo;
if (CreationFlags & DICD_GENERATE_ID) if (CreationFlags & DICD_GENERATE_ID)
{ {
/* Generate a new unique ID for this device */ /* Generate a new unique ID for this device */

View file

@ -96,9 +96,9 @@ struct needs_callback_info
typedef BOOL (*iterate_fields_func)( HINF hinf, PCWSTR field, void *arg ); typedef BOOL (*iterate_fields_func)( HINF hinf, PCWSTR field, void *arg );
static BOOL GetLineText( HINF hinf, PCWSTR section_name, PCWSTR key_name, PWSTR *value); static BOOL GetLineText( HINF hinf, PCWSTR section_name, PCWSTR key_name, PWSTR *value);
typedef HRESULT WINAPI (*COINITIALIZE)(IN LPVOID pvReserved); typedef HRESULT (WINAPI *COINITIALIZE)(IN LPVOID pvReserved);
typedef HRESULT WINAPI (*COCREATEINSTANCE)(IN REFCLSID rclsid, IN LPUNKNOWN pUnkOuter, IN DWORD dwClsContext, IN REFIID riid, OUT LPVOID *ppv); typedef HRESULT (WINAPI *COCREATEINSTANCE)(IN REFCLSID rclsid, IN LPUNKNOWN pUnkOuter, IN DWORD dwClsContext, IN REFIID riid, OUT LPVOID *ppv);
typedef HRESULT WINAPI (*COUNINITIALIZE)(VOID); typedef HRESULT (WINAPI *COUNINITIALIZE)(VOID);
/* Unicode constants */ /* Unicode constants */
static const WCHAR AddService[] = {'A','d','d','S','e','r','v','i','c','e',0}; static const WCHAR AddService[] = {'A','d','d','S','e','r','v','i','c','e',0};

View file

@ -632,8 +632,9 @@ struct hostent defined in w32api/include/winsock2.h
void free_servent(struct servent* s) void free_servent(struct servent* s)
{ {
char* next;
HFREE(s->s_name); HFREE(s->s_name);
char* next = s->s_aliases[0]; next = s->s_aliases[0];
while(next) { HFREE(next); next++; } while(next) { HFREE(next); next++; }
s->s_port = 0; s->s_port = 0;
HFREE(s->s_proto); HFREE(s->s_proto);
@ -660,10 +661,11 @@ gethostbyname(IN CONST CHAR FAR* name)
DNS_STATUS dns_status = {0}; DNS_STATUS dns_status = {0};
/* include/WinDNS.h -- look up DNS_RECORD on MSDN */ /* include/WinDNS.h -- look up DNS_RECORD on MSDN */
PDNS_RECORD dp = 0; PDNS_RECORD dp = 0;
PWINSOCK_THREAD_BLOCK p;
addr = GH_INVALID; addr = GH_INVALID;
PWINSOCK_THREAD_BLOCK p = NtCurrentTeb()->WinSockData; p = NtCurrentTeb()->WinSockData;
if( !p ) if( !p )
{ {

View file

@ -510,13 +510,13 @@ WSAHtons(IN SOCKET s,
IN USHORT hostshort, IN USHORT hostshort,
OUT USHORT FAR* lpnetshort) OUT USHORT FAR* lpnetshort)
{ {
PCATALOG_ENTRY provider;
if (!WSAINITIALIZED) if (!WSAINITIALIZED)
{ {
WSASetLastError(WSANOTINITIALISED); WSASetLastError(WSANOTINITIALISED);
return SOCKET_ERROR; return SOCKET_ERROR;
} }
PCATALOG_ENTRY provider;
if (!ReferenceProviderByHandle((HANDLE)s, &provider)) if (!ReferenceProviderByHandle((HANDLE)s, &provider))
{ {
WSASetLastError(WSAENOTSOCK); WSASetLastError(WSAENOTSOCK);
@ -599,13 +599,13 @@ WSANtohs(IN SOCKET s,
IN USHORT netshort, IN USHORT netshort,
OUT USHORT FAR* lphostshort) OUT USHORT FAR* lphostshort)
{ {
PCATALOG_ENTRY provider;
if (!WSAINITIALIZED) if (!WSAINITIALIZED)
{ {
WSASetLastError(WSANOTINITIALISED); WSASetLastError(WSANOTINITIALISED);
return SOCKET_ERROR; return SOCKET_ERROR;
} }
PCATALOG_ENTRY provider;
if (!ReferenceProviderByHandle((HANDLE)s, &provider)) if (!ReferenceProviderByHandle((HANDLE)s, &provider))
{ {
WSASetLastError(WSAENOTSOCK); WSASetLastError(WSAENOTSOCK);

View file

@ -1093,7 +1093,7 @@ typedef struct _FILE_FULL_DIRECTORY_INFORMATION {
ULONG FileAttributes; ULONG FileAttributes;
ULONG FileNameLength; ULONG FileNameLength;
ULONG EaSize; ULONG EaSize;
WCHAR FileName[0]; WCHAR FileName[ANYSIZE_ARRAY];
} FILE_FULL_DIRECTORY_INFORMATION, *PFILE_FULL_DIRECTORY_INFORMATION; } FILE_FULL_DIRECTORY_INFORMATION, *PFILE_FULL_DIRECTORY_INFORMATION;
typedef struct _FILE_ID_FULL_DIR_INFORMATION { typedef struct _FILE_ID_FULL_DIR_INFORMATION {

View file

@ -575,13 +575,13 @@ typedef union _SLIST_HEADER {
ULONGLONG Reserved:59; ULONGLONG Reserved:59;
ULONGLONG Region:3; ULONGLONG Region:3;
} Header8; } Header8;
struct {
ULONGLONG Depth:16; ULONGLONG Depth:16;
ULONGLONG Sequence:48; ULONGLONG Sequence:48;
ULONGLONG HeaderType:1; ULONGLONG HeaderType:1;
ULONGLONG Init:1; ULONGLONG Init:1;
ULONGLONG Reserved:2; ULONGLONG Reserved:2;
ULONGLONG NextEntry:60; ULONGLONG NextEntry:60;
struct {
} Header16; } Header16;
} SLIST_HEADER, *PSLIST_HEADER; } SLIST_HEADER, *PSLIST_HEADER;
#else #else
@ -1956,8 +1956,8 @@ RtlEnlargedUnsignedDivide(
IN OUT PULONG Remainder) IN OUT PULONG Remainder)
{ {
if (Remainder) if (Remainder)
*Remainder = Dividend.QuadPart % Divisor; *Remainder = (ULONG)(Dividend.QuadPart % Divisor);
return Dividend.QuadPart / Divisor; return (ULONG)(Dividend.QuadPart / Divisor);
} }
//DECLSPEC_DEPRECATED_DDK //DECLSPEC_DEPRECATED_DDK

View file

@ -5128,9 +5128,17 @@ typedef struct _KFLOATING_SAVE {
ULONG Spare1; ULONG Spare1;
} KFLOATING_SAVE, *PKFLOATING_SAVE; } KFLOATING_SAVE, *PKFLOATING_SAVE;
static __inline #ifdef _MSC_VER
//
// FIXME: Intrinsics
//
unsigned char __readfsbyte(const unsigned long Offset);
#pragma intrinsic(__readfsbyte)
#endif
FORCEINLINE
ULONG ULONG
DDKAPI
KeGetCurrentProcessorNumber(VOID) KeGetCurrentProcessorNumber(VOID)
{ {
#if defined(__GNUC__) #if defined(__GNUC__)
@ -5145,7 +5153,7 @@ KeGetCurrentProcessorNumber(VOID)
#if _MSC_FULL_VER >= 13012035 #if _MSC_FULL_VER >= 13012035
return (ULONG)__readfsbyte(FIELD_OFFSET(KPCR, Number)); return (ULONG)__readfsbyte(FIELD_OFFSET(KPCR, Number));
#else #else
__asm { movzx eax, _PCR KPCR.Number } __asm { movzx eax, fs:[0] KPCR.Number }
#endif #endif
#else #else
#error Unknown compiler #error Unknown compiler
@ -5945,7 +5953,7 @@ RemoveEntryList(
OldBlink = Entry->Blink; OldBlink = Entry->Blink;
OldFlink->Blink = OldBlink; OldFlink->Blink = OldBlink;
OldBlink->Flink = OldFlink; OldBlink->Flink = OldFlink;
return (OldFlink == OldBlink); return (BOOLEAN)(OldFlink == OldBlink);
} }
static __inline PLIST_ENTRY static __inline PLIST_ENTRY

View file

@ -56,45 +56,45 @@
#define WNNC_START 0x0000000c #define WNNC_START 0x0000000c
#define WNNC_WAIT_FOR_START 0x00000001 #define WNNC_WAIT_FOR_START 0x00000001
typedef DWORD APIENTRY (*PF_NPGetCaps)(DWORD ndex); typedef DWORD (APIENTRY *PF_NPGetCaps)(DWORD ndex);
/* get user */ /* get user */
typedef DWORD APIENTRY (*PF_NPGetUser)(LPWSTR lpName, LPWSTR lpUserName, typedef DWORD (APIENTRY *PF_NPGetUser)(LPWSTR lpName, LPWSTR lpUserName,
LPDWORD lpnBufferLen); LPDWORD lpnBufferLen);
/* enumeration-related */ /* enumeration-related */
typedef DWORD APIENTRY (*PF_NPOpenEnum)(DWORD dwScope, DWORD dwType, DWORD dwUsage, typedef DWORD (APIENTRY *PF_NPOpenEnum)(DWORD dwScope, DWORD dwType, DWORD dwUsage,
LPNETRESOURCEW lpNetResource, LPHANDLE lphEnum); LPNETRESOURCEW lpNetResource, LPHANDLE lphEnum);
typedef DWORD APIENTRY (*PF_NPEnumResource)(HANDLE hEnum, LPDWORD lpcCount, typedef DWORD (APIENTRY *PF_NPEnumResource)(HANDLE hEnum, LPDWORD lpcCount,
LPVOID lpBuffer, LPDWORD lpBufferSize); LPVOID lpBuffer, LPDWORD lpBufferSize);
typedef DWORD APIENTRY (*PF_NPCloseEnum)(HANDLE hEnum); typedef DWORD (APIENTRY *PF_NPCloseEnum)(HANDLE hEnum);
typedef DWORD (APIENTRY *PF_NPGetResourceInformation)(LPNETRESOURCEW lpNetResource, typedef DWORD (APIENTRY *PF_NPGetResourceInformation)(LPNETRESOURCEW lpNetResource,
LPVOID lpBuffer, LPDWORD lpcbBuffer, LPWSTR* lplpSystem); LPVOID lpBuffer, LPDWORD lpcbBuffer, LPWSTR* lplpSystem);
/* connection-related */ /* connection-related */
typedef DWORD APIENTRY (*PF_NPAddConnection)(LPNETRESOURCEW lpNetResource, typedef DWORD (APIENTRY *PF_NPAddConnection)(LPNETRESOURCEW lpNetResource,
LPWSTR lpPassword, LPWSTR lpUserName); LPWSTR lpPassword, LPWSTR lpUserName);
typedef DWORD APIENTRY (*PF_NPAddConnection3)(HWND hwndOwner, typedef DWORD (APIENTRY *PF_NPAddConnection3)(HWND hwndOwner,
LPNETRESOURCEW lpNetResource, LPWSTR lpPassword, LPWSTR lpUserName, LPNETRESOURCEW lpNetResource, LPWSTR lpPassword, LPWSTR lpUserName,
DWORD dwFlags); DWORD dwFlags);
typedef DWORD APIENTRY (*PF_NPCancelConnection)(LPWSTR lpName, BOOL fForce); typedef DWORD (APIENTRY *PF_NPCancelConnection)(LPWSTR lpName, BOOL fForce);
typedef DWORD APIENTRY (*PF_NPGetConnection)(LPWSTR lpLocalName, typedef DWORD (APIENTRY *PF_NPGetConnection)(LPWSTR lpLocalName,
LPWSTR lpRemoteName, LPDWORD lpnBufferLen); LPWSTR lpRemoteName, LPDWORD lpnBufferLen);
/* network name manipulation */ /* network name manipulation */
typedef DWORD APIENTRY (*PF_NPGetUniversalName)(LPWSTR lpLocalPath, typedef DWORD (APIENTRY *PF_NPGetUniversalName)(LPWSTR lpLocalPath,
DWORD dwInfoLevel, LPVOID lpBuffer, LPDWORD lpnBufferSize); DWORD dwInfoLevel, LPVOID lpBuffer, LPDWORD lpnBufferSize);
typedef DWORD APIENTRY (*PF_NPFormatNetworkName)(LPWSTR lpRemoteName, typedef DWORD (APIENTRY *PF_NPFormatNetworkName)(LPWSTR lpRemoteName,
LPWSTR lpFormattedName, LPDWORD lpnLength, DWORD dwFlags, LPWSTR lpFormattedName, LPDWORD lpnLength, DWORD dwFlags,
DWORD dwAveCharPerLine); DWORD dwAveCharPerLine);
/* dialogs */ /* dialogs */
typedef DWORD APIENTRY (*PF_NPDeviceMode)(HWND hParent); typedef DWORD (APIENTRY *PF_NPDeviceMode)(HWND hParent);
/* search dialog */ /* search dialog */
#define WNSRCH_REFRESH_FIRST_LEVEL 0x00000001 #define WNSRCH_REFRESH_FIRST_LEVEL 0x00000001
typedef DWORD APIENTRY (*PF_NPSearchDialog)(HWND hwndParent, typedef DWORD (APIENTRY *PF_NPSearchDialog)(HWND hwndParent,
LPNETRESOURCEW lpNetResource, LPVOID lpBuffer, DWORD cbBuffer, LPNETRESOURCEW lpNetResource, LPVOID lpBuffer, DWORD cbBuffer,
LPDWORD lpnFlags); LPDWORD lpnFlags);
@ -109,10 +109,10 @@ typedef DWORD APIENTRY (*PF_NPSearchDialog)(HWND hwndParent,
#define WNPS_DIR 1 #define WNPS_DIR 1
#define WNPS_MULT 2 #define WNPS_MULT 2
typedef DWORD APIENTRY (*PF_NPGetPropertyText)(DWORD iButton, DWORD nPropSel, typedef DWORD (APIENTRY *PF_NPGetPropertyText)(DWORD iButton, DWORD nPropSel,
LPWSTR lpName, LPWSTR lpButtonName, DWORD nButtonNameLen, DWORD nType); LPWSTR lpName, LPWSTR lpButtonName, DWORD nButtonNameLen, DWORD nType);
typedef DWORD APIENTRY (*PF_NPPropertyDialog)(HWND hwndParent, DWORD iButtonDlg, typedef DWORD (APIENTRY *PF_NPPropertyDialog)(HWND hwndParent, DWORD iButtonDlg,
DWORD nPropSel, LPWSTR lpFileName, DWORD nType); DWORD nPropSel, LPWSTR lpFileName, DWORD nType);
/* admin */ /* admin */
@ -123,9 +123,9 @@ typedef DWORD APIENTRY (*PF_NPPropertyDialog)(HWND hwndParent, DWORD iButtonDlg,
#define WNDN_RMDIR 2 #define WNDN_RMDIR 2
#define WNDN_MVDIR 3 #define WNDN_MVDIR 3
typedef DWORD APIENTRY (*PF_NPGetDirectoryType)(LPWSTR lpName, LPINT lpType, typedef DWORD (APIENTRY *PF_NPGetDirectoryType)(LPWSTR lpName, LPINT lpType,
BOOL bFlushCache); BOOL bFlushCache);
typedef DWORD APIENTRY (*PF_NPDirectoryNotify)(HWND hwnd, LPWSTR lpDir, typedef DWORD (APIENTRY *PF_NPDirectoryNotify)(HWND hwnd, LPWSTR lpDir,
DWORD dwOper); DWORD dwOper);
/* permission editor dialogs */ /* permission editor dialogs */
@ -133,16 +133,16 @@ typedef DWORD APIENTRY (*PF_NPDirectoryNotify)(HWND hwnd, LPWSTR lpDir,
#define WNPERMC_AUDIT 0x00000002 #define WNPERMC_AUDIT 0x00000002
#define WNPERMC_OWNER 0x00000004 #define WNPERMC_OWNER 0x00000004
typedef DWORD APIENTRY (*PF_NPFMXGetPermCaps)(LPWSTR lpDriveName); typedef DWORD (APIENTRY *PF_NPFMXGetPermCaps)(LPWSTR lpDriveName);
#define WNPERM_DLG_PERM 0 #define WNPERM_DLG_PERM 0
#define WNPERM_DLG_AUDIT 1 #define WNPERM_DLG_AUDIT 1
#define WNPERM_DLG_OWNER 2 #define WNPERM_DLG_OWNER 2
typedef DWORD APIENTRY (*PF_NPFMXEditPerm)(LPWSTR lpDriveName, HWND hwndFMX, typedef DWORD (APIENTRY *PF_NPFMXEditPerm)(LPWSTR lpDriveName, HWND hwndFMX,
DWORD nDialogType); DWORD nDialogType);
typedef DWORD APIENTRY (*PF_NPFMXGetPermHelp)(LPWSTR lpDriveName, typedef DWORD (APIENTRY *PF_NPFMXGetPermHelp)(LPWSTR lpDriveName,
DWORD nDialogType, BOOL fDirectory, LPVOID lpFileNameBuffer, DWORD nDialogType, BOOL fDirectory, LPVOID lpFileNameBuffer,
LPDWORD lpBufferSize, LPDWORD lpnHelpContext); LPDWORD lpBufferSize, LPDWORD lpnHelpContext);
@ -160,11 +160,11 @@ VOID WINAPI WNetSetLastErrorW(DWORD err, LPWSTR lpError, LPWSTR lpProviders);
#define WN_NT_PASSWORD_CHANGED 0x00000002 #define WN_NT_PASSWORD_CHANGED 0x00000002
/* notifications */ /* notifications */
typedef DWORD APIENTRY (*PF_NPLogonNotify)(PLUID lpLogonId, typedef DWORD (APIENTRY *PF_NPLogonNotify)(PLUID lpLogonId,
LPCWSTR lpAuthentInfoType, LPVOID lpAuthentInfo, LPCWSTR lpAuthentInfoType, LPVOID lpAuthentInfo,
LPCWSTR lpPreviousAuthentInfoType, LPVOID lpPreviousAuthentInfo, LPCWSTR lpPreviousAuthentInfoType, LPVOID lpPreviousAuthentInfo,
LPWSTR lpStationName, LPVOID StationHandle, LPWSTR *lpLogonScript); LPWSTR lpStationName, LPVOID StationHandle, LPWSTR *lpLogonScript);
typedef DWORD APIENTRY (*PF_NPPasswordChangeNotify)(LPCWSTR lpAuthentInfoType, typedef DWORD (APIENTRY *PF_NPPasswordChangeNotify)(LPCWSTR lpAuthentInfoType,
LPVOID lpAuthentInfo, LPCWSTR lpPreviousAuthentInfoType, LPVOID lpAuthentInfo, LPCWSTR lpPreviousAuthentInfoType,
LPVOID lpPreviousAuthentInfo, LPWSTR lpStationName, LPVOID StationHandle, LPVOID lpPreviousAuthentInfo, LPWSTR lpStationName, LPVOID StationHandle,
DWORD dwChangeInfo); DWORD dwChangeInfo);
@ -201,9 +201,9 @@ typedef struct _NOTIFYCANCEL
BOOL fForce; BOOL fForce;
} NOTIFYCANCEL, *LPNOTIFYCANCEL; } NOTIFYCANCEL, *LPNOTIFYCANCEL;
typedef DWORD APIENTRY (*PF_AddConnectNotify)(LPNOTIFYINFO lpNotifyInfo, typedef DWORD (APIENTRY *PF_AddConnectNotify)(LPNOTIFYINFO lpNotifyInfo,
LPNOTIFYADD lpAddInfo); LPNOTIFYADD lpAddInfo);
typedef DWORD APIENTRY (*PF_CancelConnectNotify)(LPNOTIFYINFO lpNotifyInfo, typedef DWORD (APIENTRY *PF_CancelConnectNotify)(LPNOTIFYINFO lpNotifyInfo,
LPNOTIFYADD lpAddInfo); LPNOTIFYADD lpAddInfo);
#endif /* ndef __WINE_NPAPI_H__ */ #endif /* ndef __WINE_NPAPI_H__ */

View file

@ -31,6 +31,7 @@
<module name="mingw_main" type="staticlibrary" isstartuplib="true" crt="dll"> <module name="mingw_main" type="staticlibrary" isstartuplib="true" crt="dll">
<define name="_CRTBLD" /> <define name="_CRTBLD" />
<include base="ReactOS">include/reactos/mingw-w64</include> <include base="ReactOS">include/reactos/mingw-w64</include>
<compilerflag compilerset="msc">/wd4733</compilerflag>
<file>crt0_c.c</file> <file>crt0_c.c</file>
<file>crtexe.c</file> <file>crtexe.c</file>
<file>dllargv.c</file> <file>dllargv.c</file>

View file

@ -114,7 +114,7 @@ typedef struct _CM_KEY_NODE
ULONG WorkVar; ULONG WorkVar;
USHORT NameLength; USHORT NameLength;
USHORT ClassLength; USHORT ClassLength;
WCHAR Name[0]; WCHAR Name[ANYSIZE_ARRAY];
} CM_KEY_NODE, *PCM_KEY_NODE; } CM_KEY_NODE, *PCM_KEY_NODE;
// //
@ -122,7 +122,7 @@ typedef struct _CM_KEY_NODE
// //
typedef struct _VALUE_LIST_CELL typedef struct _VALUE_LIST_CELL
{ {
HCELL_INDEX ValueOffset[0]; HCELL_INDEX ValueOffset[ANYSIZE_ARRAY];
} VALUE_LIST_CELL, *PVALUE_LIST_CELL; } VALUE_LIST_CELL, *PVALUE_LIST_CELL;
// //
@ -137,7 +137,7 @@ typedef struct _CM_KEY_VALUE
ULONG Type; ULONG Type;
USHORT Flags; USHORT Flags;
USHORT Unused1; USHORT Unused1;
WCHAR Name[0]; WCHAR Name[ANYSIZE_ARRAY];
} CM_KEY_VALUE, *PCM_KEY_VALUE; } CM_KEY_VALUE, *PCM_KEY_VALUE;
// //
@ -152,7 +152,7 @@ typedef struct _CM_KEY_SECURITY
ULONG ReferenceCount; ULONG ReferenceCount;
ULONG DescriptorLength; ULONG DescriptorLength;
//SECURITY_DESCRIPTOR_RELATIVE Descriptor; //SECURITY_DESCRIPTOR_RELATIVE Descriptor;
UCHAR Data[0]; UCHAR Data[ANYSIZE_ARRAY];
} CM_KEY_SECURITY, *PCM_KEY_SECURITY; } CM_KEY_SECURITY, *PCM_KEY_SECURITY;
#ifdef CMLIB_HOST #ifdef CMLIB_HOST

View file

@ -814,6 +814,10 @@ Ext2Format(
/* File Sys Structure */ /* File Sys Structure */
EXT2_FILESYS FileSys; EXT2_FILESYS FileSys;
ULONG Percent; ULONG Percent;
ULONG rsv;
ULONG blocks;
ULONG start;
ULONG ret_blk;
Callback(PROGRESS, 0, (PVOID)&Percent); Callback(PROGRESS, 0, (PVOID)&Percent);
@ -917,10 +921,8 @@ Ext2Format(
} }
/* rsv must be a power of two (64kB is MD RAID sb alignment) */ /* rsv must be a power of two (64kB is MD RAID sb alignment) */
ULONG rsv = 65536 / FileSys.blocksize; rsv = 65536 / FileSys.blocksize;
ULONG blocks = Ext2Sb.s_blocks_count; blocks = Ext2Sb.s_blocks_count;
ULONG start;
ULONG ret_blk;
#ifdef ZAP_BOOTBLOCK #ifdef ZAP_BOOTBLOCK
zap_sector(&FileSys, 0, 2); zap_sector(&FileSys, 0, 2);

View file

@ -123,6 +123,7 @@ Ke386Wrmsr(IN ULONG Register,
IN ULONG Var1, IN ULONG Var1,
IN ULONG Var2) IN ULONG Var2)
{ {
__asm mov ecx, Register;
__asm mov eax, Var1; __asm mov eax, Var1;
__asm mov edx, Var2; __asm mov edx, Var2;
__asm wrmsr; __asm wrmsr;
@ -134,6 +135,7 @@ Ke386Rdmsr(IN ULONG Register,
IN ULONG Var1, IN ULONG Var1,
IN ULONG Var2) IN ULONG Var2)
{ {
__asm mov ecx, Register;
__asm mov eax, Var1; __asm mov eax, Var1;
__asm mov edx, Var2; __asm mov edx, Var2;
__asm rdmsr; __asm rdmsr;

View file

@ -104,14 +104,17 @@ IntInsertAliasHeader(PALIAS_HEADER * RootHeader, PALIAS_HEADER NewHeader)
PALIAS_ENTRY PALIAS_ENTRY
IntGetAliasEntry(PALIAS_HEADER Header, LPCWSTR lpSrcName) IntGetAliasEntry(PALIAS_HEADER Header, LPCWSTR lpSrcName)
{ {
PALIAS_ENTRY RootHeader;
if (Header == NULL) if (Header == NULL)
return NULL; return NULL;
PALIAS_ENTRY RootHeader = Header->Data; RootHeader = Header->Data;
while(RootHeader) while(RootHeader)
{ {
INT diff;
DPRINT("IntGetAliasEntry>lpSource %S\n", RootHeader->lpSource); DPRINT("IntGetAliasEntry>lpSource %S\n", RootHeader->lpSource);
INT diff = _wcsicmp(RootHeader->lpSource, lpSrcName); diff = _wcsicmp(RootHeader->lpSource, lpSrcName);
if (!diff) if (!diff)
return RootHeader; return RootHeader;