* cygpath.cc: Change including headers to allow building against
Mingw64 headers. Include ntdef.h and ntdll.h rather than ddk headers. Define _WIN32_WINNT and WINVER as 0x0602. (RtlEqualUnicodePathPrefix): Drop definition. Pulled in from ntdll.h now. (get_device_name): s/Zw/Nt. * dumper.cc: Include sys/param.h (dumper::dump_memory_region): Use MIN rather than min. * locale.cc: Include stdlib.h. Define _WIN32_WINNT and WINVER as 0x0602. * ps.cc: Include ntdef.h and ntdll.h rather than ddk headers. * regtool.cc (regDeleteKeyEx): Drop WINADVAPI qualifier.
This commit is contained in:
parent
3eedbf8611
commit
9cfc9511cd
@ -1,3 +1,18 @@
|
||||
2012-07-06 Corinna Vinschen <corinna@vinschen.de>
|
||||
|
||||
* cygpath.cc: Change including headers to allow building against
|
||||
Mingw64 headers. Include ntdef.h and ntdll.h rather than ddk headers.
|
||||
Define _WIN32_WINNT and WINVER as 0x0602.
|
||||
(RtlEqualUnicodePathPrefix): Drop definition. Pulled in from ntdll.h
|
||||
now.
|
||||
(get_device_name): s/Zw/Nt.
|
||||
* dumper.cc: Include sys/param.h
|
||||
(dumper::dump_memory_region): Use MIN rather than min.
|
||||
* locale.cc: Include stdlib.h. Define _WIN32_WINNT and WINVER as
|
||||
0x0602.
|
||||
* ps.cc: Include ntdef.h and ntdll.h rather than ddk headers.
|
||||
* regtool.cc (regDeleteKeyEx): Drop WINADVAPI qualifier.
|
||||
|
||||
2012-06-03 Corinna Vinschen <corinna@vinschen.de>
|
||||
|
||||
* cygcheck.cc (dump_sysinfo): Change "Server 8" to official
|
||||
|
@ -8,10 +8,6 @@ This software is a copyrighted work licensed under the terms of the
|
||||
Cygwin license. Please consult the file "CYGWIN_LICENSE" for
|
||||
details. */
|
||||
|
||||
#define NOCOMATTRIBUTE
|
||||
|
||||
#define WINVER 0x0600
|
||||
#include <shlobj.h>
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include <wchar.h>
|
||||
@ -19,17 +15,22 @@ details. */
|
||||
#include <stdlib.h>
|
||||
#include <limits.h>
|
||||
#include <getopt.h>
|
||||
#include <windows.h>
|
||||
#include <userenv.h>
|
||||
#include <io.h>
|
||||
#include <sys/fcntl.h>
|
||||
#include <sys/cygwin.h>
|
||||
#include <cygwin/version.h>
|
||||
#include <ctype.h>
|
||||
#include <errno.h>
|
||||
#include <ddk/ntddk.h>
|
||||
#include <ddk/winddk.h>
|
||||
#include <ddk/ntifs.h>
|
||||
|
||||
#define _WIN32_WINNT 0x0602
|
||||
#define WINVER 0x0602
|
||||
#define NOCOMATTRIBUTE
|
||||
#include <windows.h>
|
||||
#include <userenv.h>
|
||||
#include <shlobj.h>
|
||||
#include <ntdef.h>
|
||||
#include <ntdll.h>
|
||||
|
||||
#include "wide_path.h"
|
||||
#include "loadlib.h"
|
||||
|
||||
@ -148,18 +149,6 @@ RtlAllocateUnicodeString (PUNICODE_STRING uni, ULONG size)
|
||||
return uni->Buffer != NULL;
|
||||
}
|
||||
|
||||
static inline BOOLEAN
|
||||
RtlEqualUnicodePathPrefix (PUNICODE_STRING path, PUNICODE_STRING prefix,
|
||||
BOOLEAN caseinsensitive)
|
||||
{
|
||||
UNICODE_STRING p;
|
||||
|
||||
p.Length = p.MaximumLength = prefix->Length < path->Length
|
||||
? prefix->Length : path->Length;
|
||||
p.Buffer = path->Buffer;
|
||||
return RtlEqualUnicodeString (&p, prefix, caseinsensitive);
|
||||
}
|
||||
|
||||
static size_t
|
||||
my_wcstombs (char *dest, const wchar_t *src, size_t n)
|
||||
{
|
||||
@ -203,11 +192,11 @@ get_device_name (char *path)
|
||||
query it and use the new name as actual device name to search for in the
|
||||
DOS device name directory. If not, just use the incoming device name. */
|
||||
InitializeObjectAttributes (&ntobj, &ntdev, OBJ_CASE_INSENSITIVE, NULL, NULL);
|
||||
status = ZwOpenSymbolicLinkObject (&lnk, SYMBOLIC_LINK_QUERY, &ntobj);
|
||||
status = NtOpenSymbolicLinkObject (&lnk, SYMBOLIC_LINK_QUERY, &ntobj);
|
||||
if (NT_SUCCESS (status))
|
||||
{
|
||||
status = ZwQuerySymbolicLinkObject (lnk, &tgtdev, NULL);
|
||||
ZwClose (lnk);
|
||||
status = NtQuerySymbolicLinkObject (lnk, &tgtdev, NULL);
|
||||
NtClose (lnk);
|
||||
if (!NT_SUCCESS (status))
|
||||
goto out;
|
||||
RtlCopyUnicodeString (&ntdev, &tgtdev);
|
||||
@ -225,28 +214,28 @@ get_device_name (char *path)
|
||||
/* Open the directory... */
|
||||
InitializeObjectAttributes (&ntobj, &ntdevdir, OBJ_CASE_INSENSITIVE,
|
||||
NULL, NULL);
|
||||
status = ZwOpenDirectoryObject (&dir, DIRECTORY_QUERY, &ntobj);
|
||||
status = NtOpenDirectoryObject (&dir, DIRECTORY_QUERY, &ntobj);
|
||||
if (!NT_SUCCESS (status))
|
||||
break;
|
||||
|
||||
/* ...and scan it. */
|
||||
for (restart = TRUE, cont = 0;
|
||||
NT_SUCCESS (ZwQueryDirectoryObject (dir, odi, 4096, TRUE,
|
||||
NT_SUCCESS (NtQueryDirectoryObject (dir, odi, 4096, TRUE,
|
||||
restart, &cont, NULL));
|
||||
restart = FALSE)
|
||||
{
|
||||
/* For each entry check if it's a symbolic link. */
|
||||
InitializeObjectAttributes (&ntobj, &odi->ObjectName,
|
||||
OBJ_CASE_INSENSITIVE, dir, NULL);
|
||||
status = ZwOpenSymbolicLinkObject (&lnk, SYMBOLIC_LINK_QUERY, &ntobj);
|
||||
status = NtOpenSymbolicLinkObject (&lnk, SYMBOLIC_LINK_QUERY, &ntobj);
|
||||
if (!NT_SUCCESS (status))
|
||||
continue;
|
||||
tgtdev.Length = 0;
|
||||
tgtdev.MaximumLength = 512;
|
||||
/* If so, query it and compare the target of the symlink with the
|
||||
incoming device name. */
|
||||
status = ZwQuerySymbolicLinkObject (lnk, &tgtdev, NULL);
|
||||
ZwClose (lnk);
|
||||
status = NtQuerySymbolicLinkObject (lnk, &tgtdev, NULL);
|
||||
NtClose (lnk);
|
||||
if (!NT_SUCCESS (status))
|
||||
continue;
|
||||
if (tgtdev.Length /* There's actually a symlink pointing to an
|
||||
@ -293,12 +282,12 @@ get_device_name (char *path)
|
||||
else
|
||||
memmove (ret, ret + 4, strlen (ret + 4) + 1);
|
||||
}
|
||||
ZwClose (dir);
|
||||
NtClose (dir);
|
||||
goto out;
|
||||
}
|
||||
}
|
||||
}
|
||||
ZwClose (dir);
|
||||
NtClose (dir);
|
||||
}
|
||||
|
||||
out:
|
||||
|
@ -33,6 +33,7 @@
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <unistd.h>
|
||||
#include <sys/param.h>
|
||||
#include <windows.h>
|
||||
|
||||
#include "dumper.h"
|
||||
@ -380,7 +381,7 @@ dumper::dump_memory_region (asection * to, process_mem_region * memory)
|
||||
|
||||
while (size > 0)
|
||||
{
|
||||
todo = min (size, PAGE_BUFFER_SIZE);
|
||||
todo = MIN (size, PAGE_BUFFER_SIZE);
|
||||
if (!ReadProcessMemory (hProcess, pos, mem_buf, todo, &done))
|
||||
{
|
||||
deb_printf ("Failed to read process memory at %x(%x), error %ld\n", pos, todo, GetLastError ());
|
||||
|
@ -25,6 +25,7 @@
|
||||
*/
|
||||
#include <errno.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <ctype.h>
|
||||
#include <getopt.h>
|
||||
#include <string.h>
|
||||
@ -34,7 +35,8 @@
|
||||
#include <limits.h>
|
||||
#include <sys/cygwin.h>
|
||||
#include <cygwin/version.h>
|
||||
#define WINVER 0x0601
|
||||
#define _WIN32_WINNT 0x0602
|
||||
#define WINVER 0x0602
|
||||
#include <windows.h>
|
||||
|
||||
#define LOCALE_ALIAS "/usr/share/locale/locale.alias"
|
||||
|
@ -23,8 +23,8 @@ details. */
|
||||
#include <sys/cygwin.h>
|
||||
#include <cygwin/version.h>
|
||||
#include <psapi.h>
|
||||
#include <ddk/ntapi.h>
|
||||
#include <ddk/winddk.h>
|
||||
#include <ntdef.h>
|
||||
#include <ntdll.h>
|
||||
#include "loadlib.h"
|
||||
|
||||
/* Maximum possible path length under NT. There's no official define
|
||||
@ -347,7 +347,7 @@ main (int argc, char *argv[])
|
||||
unicode_buf to have enough space for a maximum sized
|
||||
UNICODE_STRING. */
|
||||
if (uni->Length == 0) /* System process */
|
||||
win32path = L"System";
|
||||
win32path = (wchar_t *) L"System";
|
||||
else
|
||||
{
|
||||
uni->Buffer[uni->Length / sizeof (WCHAR)] = L'\0';
|
||||
|
@ -574,7 +574,7 @@ cmd_add ()
|
||||
}
|
||||
|
||||
extern "C" {
|
||||
WINADVAPI LONG WINAPI (*regDeleteKeyEx)(HKEY, LPCWSTR, REGSAM, DWORD);
|
||||
LONG WINAPI (*regDeleteKeyEx)(HKEY, LPCWSTR, REGSAM, DWORD);
|
||||
}
|
||||
|
||||
int
|
||||
@ -587,7 +587,7 @@ cmd_remove ()
|
||||
{
|
||||
HMODULE mod = LoadLibrary ("advapi32.dll");
|
||||
if (mod)
|
||||
regDeleteKeyEx = (WINADVAPI LONG WINAPI (*)(HKEY, LPCWSTR, REGSAM, DWORD)) GetProcAddress (mod, "RegDeleteKeyExW");
|
||||
regDeleteKeyEx = (LONG WINAPI (*)(HKEY, LPCWSTR, REGSAM, DWORD)) GetProcAddress (mod, "RegDeleteKeyExW");
|
||||
}
|
||||
if (regDeleteKeyEx)
|
||||
rv = (*regDeleteKeyEx) (key, value, wow64, 0);
|
||||
|
Loading…
Reference in New Issue
Block a user