* [WIN32K] Fix handle calculation in DbgGdiHTIntegrityCheck
* [NOTEPAD] Fix MSVC warnings
* [PSDK] Simplify *PROC definitions in windef.h
* [VIDEOPRT] Don't try to use NtVdmControl on x64
* [FREELDR] Fix some macros
* [CRT] Make qsort 64 bit compatible
* [NTOS] Use #ifndef _WIN64 instead of #ifdef _M_IX86 around C_ASSERTs
* [FAST486] Fix 64 bit warnings and change DWORD to ULONG, so it can be used in kernel mode
* [APPHELP_APITEST] Fix 64 bit issue
16 files changed:
if(!_stricmp(str, "SATA600"))
return ATA_SA600;
if(!_stricmp(str, "SATA600"))
return ATA_SA600;
char a;
int bus_id = -1;
int dev_id = -1;
char a;
int bus_id = -1;
int dev_id = -1;
switch(uMsg) {
case WM_INITDIALOG:
hTextBox = GetDlgItem(hwndDialog, ID_LINENUMBER);
switch(uMsg) {
case WM_INITDIALOG:
hTextBox = GetDlgItem(hwndDialog, ID_LINENUMBER);
- _sntprintf(szText, ARRAY_SIZE(szText), _T("%ld"), lParam);
+ _sntprintf(szText, ARRAY_SIZE(szText), _T("%Id"), lParam);
SetWindowText(hTextBox, szText);
break;
case WM_COMMAND:
SetWindowText(hTextBox, szText);
break;
case WM_COMMAND:
ENCODING_UTF16BE = 2,
ENCODING_UTF8 = 3
} ENCODING;
ENCODING_UTF16BE = 2,
ENCODING_UTF8 = 3
} ENCODING;
-// #define ENCODING_ANSI 0
-#define ENCODING_UNICODE 1
-#define ENCODING_UNICODE_BE 2
-// #define ENCODING_UTF8 3
// #define MIN_ENCODING 0
// #define MAX_ENCODING 3
// #define MIN_ENCODING 0
// #define MAX_ENCODING 3
/* Look for Byte Order Marks */
if ((dwSize >= 2) && (pBytes[0] == 0xFF) && (pBytes[1] == 0xFE))
{
/* Look for Byte Order Marks */
if ((dwSize >= 2) && (pBytes[0] == 0xFF) && (pBytes[1] == 0xFE))
{
- encFile = ENCODING_UNICODE;
+ encFile = ENCODING_UTF16LE;
dwPos += 2;
}
else if ((dwSize >= 2) && (pBytes[0] == 0xFE) && (pBytes[1] == 0xFF))
{
dwPos += 2;
}
else if ((dwSize >= 2) && (pBytes[0] == 0xFE) && (pBytes[1] == 0xFF))
{
- encFile = ENCODING_UNICODE_BE;
+ encFile = ENCODING_UTF16BE;
dwPos += 2;
}
else if ((dwSize >= 3) && (pBytes[0] == 0xEF) && (pBytes[1] == 0xBB) && (pBytes[2] == 0xBF))
dwPos += 2;
}
else if ((dwSize >= 3) && (pBytes[0] == 0xEF) && (pBytes[1] == 0xBB) && (pBytes[2] == 0xBF))
- case ENCODING_UNICODE_BE:
for (i = dwPos; i < dwSize-1; i += 2)
{
b = pBytes[i+0];
for (i = dwPos; i < dwSize-1; i += 2)
{
b = pBytes[i+0];
pszText = (LPWSTR) &pBytes[dwPos];
dwCharCount = (dwSize - dwPos) / sizeof(WCHAR);
break;
pszText = (LPWSTR) &pBytes[dwPos];
dwCharCount = (dwSize - dwPos) / sizeof(WCHAR);
break;
pBytes = (LPBYTE) &pszText[dwPos];
dwByteCount = (dwTextLen - dwPos) * sizeof(WCHAR);
dwPos = dwTextLen;
break;
pBytes = (LPBYTE) &pszText[dwPos];
dwByteCount = (dwTextLen - dwPos) * sizeof(WCHAR);
dwPos = dwTextLen;
break;
- case ENCODING_UNICODE_BE:
dwByteCount = (dwTextLen - dwPos) * sizeof(WCHAR);
if (dwByteCount > sizeof(buffer))
dwByteCount = sizeof(buffer);
dwByteCount = (dwTextLen - dwPos) * sizeof(WCHAR);
if (dwByteCount > sizeof(buffer))
dwByteCount = sizeof(buffer);
#define PtrToPfn(p) \
((((ULONGLONG)p) >> PAGE_SHIFT) & 0xfffffffULL)
#define PtrToPfn(p) \
((((ULONGLONG)p) >> PAGE_SHIFT) & 0xfffffffULL)
-#define VAtoPXI(va) ((((ULONG64)va) >> PXI_SHIFT) & 0x1FF)
-#define VAtoPPI(va) ((((ULONG64)va) >> PPI_SHIFT) & 0x1FF)
-#define VAtoPDI(va) ((((ULONG64)va) >> PDI_SHIFT) & 0x1FF)
-#define VAtoPTI(va) ((((ULONG64)va) >> PTI_SHIFT) & 0x1FF)
+#define VAtoPXI(va) ((((ULONG64)(va)) >> PXI_SHIFT) & 0x1FF)
+#define VAtoPPI(va) ((((ULONG64)(va)) >> PPI_SHIFT) & 0x1FF)
+#define VAtoPDI(va) ((((ULONG64)(va)) >> PDI_SHIFT) & 0x1FF)
+#define VAtoPTI(va) ((((ULONG64)(va)) >> PTI_SHIFT) & 0x1FF)
TRACE("Volume_FindDefaultMixerID\n");
TRACE("Volume_FindDefaultMixerID\n");
- result = waveOutMessage((HWAVEOUT)WAVE_MAPPER, DRVM_MAPPER_PREFERRED_GET, (DWORD_PTR)&waveOutId, (DWORD_PTR)¶m2);
+ result = waveOutMessage((HWAVEOUT)UlongToHandle(WAVE_MAPPER), DRVM_MAPPER_PREFERRED_GET, (DWORD_PTR)&waveOutId, (DWORD_PTR)¶m2);
if (result)
return E_FAIL;
if (result)
return E_FAIL;
{
TRACE("waveOut default device is %d\n", waveOutId);
{
TRACE("waveOut default device is %d\n", waveOutId);
- result = mixerGetID((HMIXEROBJ)waveOutId, &mixerId, MIXER_OBJECTF_WAVEOUT);
+ result = mixerGetID((HMIXEROBJ)UlongToHandle(waveOutId), &mixerId, MIXER_OBJECTF_WAVEOUT);
if (result)
return E_FAIL;
if (result)
return E_FAIL;
{
mixerLine.cbStruct = sizeof(mixerLine);
mixerLine.dwDestination = idx;
{
mixerLine.cbStruct = sizeof(mixerLine);
mixerLine.dwDestination = idx;
- if (!mixerGetLineInfoW((HMIXEROBJ)g_mixerId, &mixerLine, 0))
+ if (!mixerGetLineInfoW((HMIXEROBJ)UlongToHandle(g_mixerId), &mixerLine, 0))
{
if (mixerLine.dwComponentType >= MIXERLINE_COMPONENTTYPE_DST_SPEAKERS &&
mixerLine.dwComponentType <= MIXERLINE_COMPONENTTYPE_DST_HEADPHONES)
{
if (mixerLine.dwComponentType >= MIXERLINE_COMPONENTTYPE_DST_SPEAKERS &&
mixerLine.dwComponentType <= MIXERLINE_COMPONENTTYPE_DST_HEADPHONES)
mixerLineControls.pamxctrl = &mixerControl;
mixerLineControls.cbmxctrl = sizeof(mixerControl);
mixerLineControls.pamxctrl = &mixerControl;
mixerLineControls.cbmxctrl = sizeof(mixerControl);
- if (mixerGetLineControlsW((HMIXEROBJ)g_mixerId, &mixerLineControls, MIXER_GETLINECONTROLSF_ONEBYTYPE))
+ if (mixerGetLineControlsW((HMIXEROBJ)UlongToHandle(g_mixerId), &mixerLineControls, MIXER_GETLINECONTROLSF_ONEBYTYPE))
return E_FAIL;
TRACE("Found control id %d for mute: %d\n", mixerControl.dwControlID);
return E_FAIL;
TRACE("Found control id %d for mute: %d\n", mixerControl.dwControlID);
WriteFile(IN HANDLE hFile,
IN LPCVOID lpBuffer,
IN DWORD nNumberOfBytesToWrite OPTIONAL,
WriteFile(IN HANDLE hFile,
IN LPCVOID lpBuffer,
IN DWORD nNumberOfBytesToWrite OPTIONAL,
- OUT LPDWORD lpNumberOfBytesWritten OPTIONAL,
+ OUT LPDWORD lpNumberOfBytesWritten,
IN LPOVERLAPPED lpOverlapped OPTIONAL)
{
NTSTATUS Status;
IN LPOVERLAPPED lpOverlapped OPTIONAL)
{
NTSTATUS Status;
- Value = DWORD(HKEY_CURRENT_USER);
- Size = sizeof(Value);
- RegQueryValueExW(hKey, L"HKeyRoot", NULL, NULL, LPBYTE(&Value), &Size);
- pEntry->hkeyRoot = HKEY(Value);
+ HKEY HKeyRoot = HKEY_CURRENT_USER;
+ Size = sizeof(HKeyRoot);
+ RegQueryValueExW(hKey, L"HKeyRoot", NULL, NULL, LPBYTE(&HKeyRoot), &Size);
+ pEntry->hkeyRoot = HKeyRoot;
// RegPath
pEntry->szRegPath[0] = 0;
// RegPath
pEntry->szRegPath[0] = 0;
continue;
}
RegSetValueExW(hKey, pEntry->szValueName, 0, REG_DWORD,
continue;
}
RegSetValueExW(hKey, pEntry->szValueName, 0, REG_DWORD,
- LPBYTE(pEntry->dwDefaultValue), sizeof(DWORD));
+ LPBYTE(&pEntry->dwDefaultValue), sizeof(DWORD));
RegCloseKey(hKey);
// update check status
RegCloseKey(hKey);
// update check status
{
INT ErrorCode;
LPWSAQUERYSETW UnicodeQuerySet = NULL;
{
INT ErrorCode;
LPWSAQUERYSETW UnicodeQuerySet = NULL;
- DWORD UnicodeQuerySetSize = 0;
+ SIZE_T UnicodeQuerySetSize = 0;
DPRINT("WSALookupServiceBeginA: %p\n", lpqsRestrictions);
DPRINT("WSALookupServiceBeginA: %p\n", lpqsRestrictions);
if (ErrorCode == ERROR_SUCCESS)
{
if (ErrorCode == ERROR_SUCCESS)
{
+ SIZE_T SetSize = *lpdwBufferLength;
+
/* Now convert back to ANSI */
ErrorCode = MapUnicodeQuerySetToAnsi(UnicodeQuerySet,
/* Now convert back to ANSI */
ErrorCode = MapUnicodeQuerySetToAnsi(UnicodeQuerySet,
lpqsResults);
if (ErrorCode != ERROR_SUCCESS)
lpqsResults);
if (ErrorCode != ERROR_SUCCESS)
+ {
+ SetLastError(ErrorCode);
+ }
+ else if (SetSize > MAXDWORD)
+ {
+ ErrorCode = ERROR_ARITHMETIC_OVERFLOW;
+ }
+ else
+ {
+ *lpdwBufferLength = SetSize;
+ }
C_ASSERT(FIELD_OFFSET(KUSER_SHARED_DATA, SystemCall) == 0x300);
C_ASSERT(FIELD_OFFSET(KTHREAD, InitialStack) == KTHREAD_INITIAL_STACK);
C_ASSERT(FIELD_OFFSET(KUSER_SHARED_DATA, SystemCall) == 0x300);
C_ASSERT(FIELD_OFFSET(KTHREAD, InitialStack) == KTHREAD_INITIAL_STACK);
typedef HANDLE HLOCAL;
typedef HANDLE GLOBALHANDLE;
typedef HANDLE LOCALHANDLE;
typedef HANDLE HLOCAL;
typedef HANDLE GLOBALHANDLE;
typedef HANDLE LOCALHANDLE;
typedef INT_PTR (WINAPI *FARPROC)();
typedef INT_PTR (WINAPI *NEARPROC)();
typedef INT_PTR (WINAPI *PROC)();
typedef INT_PTR (WINAPI *FARPROC)();
typedef INT_PTR (WINAPI *NEARPROC)();
typedef INT_PTR (WINAPI *PROC)();
-#else
-typedef int (WINAPI *FARPROC)();
-typedef int (WINAPI *NEARPROC)();
-typedef int (WINAPI *PROC)();
-#endif
* (by reading outside of the prefetch buffer). The prefetch cache must
* also not cross a page boundary.
*/
* (by reading outside of the prefetch buffer). The prefetch cache must
* also not cross a page boundary.
*/
-C_ASSERT((FAST486_CACHE_SIZE >= sizeof(DWORD))
+C_ASSERT((FAST486_CACHE_SIZE >= sizeof(ULONG))
&& (FAST486_CACHE_SIZE <= FAST486_PAGE_SIZE));
struct _FAST486_STATE;
&& (FAST486_CACHE_SIZE <= FAST486_PAGE_SIZE));
struct _FAST486_STATE;
#include <stdlib.h>
#include <search.h>
#include <stdlib.h>
#include <search.h>
#define min(a, b) (a) < (b) ? (a) : (b)
/*
#define min(a, b) (a) < (b) ? (a) : (b)
/*
es % sizeof(long) ? 2 : es == sizeof(long)? 0 : 1;
static __inline void
es % sizeof(long) ? 2 : es == sizeof(long)? 0 : 1;
static __inline void
-swapfunc(char *a, char *b, int n, int swaptype)
+swapfunc(char *a, char *b, intptr_t n, int swaptype)
{
if(swaptype <= 1)
swapcode(long, a, b, n)
{
if(swaptype <= 1)
swapcode(long, a, b, n)
qsort(void *a, size_t n, size_t es, int (__cdecl *cmp)(const void*, const void*))
{
char *pa, *pb, *pc, *pd, *pl, *pm, *pn;
qsort(void *a, size_t n, size_t es, int (__cdecl *cmp)(const void*, const void*))
{
char *pa, *pb, *pc, *pd, *pl, *pm, *pn;
- int d, r, swaptype, swap_cnt;
+ int swaptype, swap_cnt;
+ intptr_t d, r;
loop: SWAPINIT(a, es);
swap_cnt = 0;
loop: SWAPINIT(a, es);
swap_cnt = 0;
Fast486MemReadCallback(PFAST486_STATE State, ULONG Address, PVOID Buffer, ULONG Size)
{
UNREFERENCED_PARAMETER(State);
Fast486MemReadCallback(PFAST486_STATE State, ULONG Address, PVOID Buffer, ULONG Size)
{
UNREFERENCED_PARAMETER(State);
- RtlMoveMemory(Buffer, (PVOID)Address, Size);
+ RtlMoveMemory(Buffer, UlongToPtr(Address), Size);
Fast486MemWriteCallback(PFAST486_STATE State, ULONG Address, PVOID Buffer, ULONG Size)
{
UNREFERENCED_PARAMETER(State);
Fast486MemWriteCallback(PFAST486_STATE State, ULONG Address, PVOID Buffer, ULONG Size)
{
UNREFERENCED_PARAMETER(State);
- RtlMoveMemory((PVOID)Address, Buffer, Size);
+ RtlMoveMemory(UlongToPtr(Address), Buffer, Size);
PVOID BaseAddress;
LARGE_INTEGER Offset;
SIZE_T ViewSize;
PVOID BaseAddress;
LARGE_INTEGER Offset;
SIZE_T ViewSize;
CHAR IVTAndBda[1024+256];
CHAR IVTAndBda[1024+256];
/* Free the 1MB pre-reserved region. In reality, ReactOS should simply support us mapping the view into the reserved area, but it doesn't. */
BaseAddress = 0;
/* Free the 1MB pre-reserved region. In reality, ReactOS should simply support us mapping the view into the reserved area, but it doesn't. */
BaseAddress = 0;
/* Get the real mode IVT and BDA from the kernel */
Status = NtVdmControl(VdmInitialize, IVTAndBda);
if (!NT_SUCCESS(Status))
/* Get the real mode IVT and BDA from the kernel */
Status = NtVdmControl(VdmInitialize, IVTAndBda);
if (!NT_SUCCESS(Status))
DPRINT1("NtVdmControl failed (status %x)\n", Status);
return Status;
}
DPRINT1("NtVdmControl failed (status %x)\n", Status);
return Status;
}
/* Return success */
return STATUS_SUCCESS;
/* Return success */
return STATUS_SUCCESS;
pEntry = &GdiHandleTable->Entries[i];
Type = pEntry->Type;
pEntry = &GdiHandleTable->Entries[i];
Type = pEntry->Type;
- Handle = (HGDIOBJ)(((ULONG_PTR)Type << GDI_ENTRY_UPPER_SHIFT) + i);
+ Handle = (HGDIOBJ)(ULONG_PTR)((Type << GDI_ENTRY_UPPER_SHIFT) + i);
if (Type & GDI_ENTRY_BASETYPE_MASK)
{
if (Type & GDI_ENTRY_BASETYPE_MASK)
{