mirror of
https://github.com/reactos/reactos.git
synced 2025-02-24 17:34:57 +00:00
System call thunk generation made marginally more portable:
- generate real C functions with inline asm. Should fix a problem with cross-compilation on 64-bit hosts - store parameter count, not parameter block size in sysfuncs.lst svn path=/trunk/; revision=9119
This commit is contained in:
parent
b7a5d0ed98
commit
ba45b57272
3 changed files with 386 additions and 341 deletions
|
@ -1,4 +1,4 @@
|
||||||
/* $Id: genw32k.c,v 1.9 2004/04/07 15:32:24 ekohl Exp $
|
/* $Id: genw32k.c,v 1.10 2004/04/12 22:07:45 hyperion Exp $
|
||||||
*
|
*
|
||||||
* COPYRIGHT: See COPYING in the top level directory
|
* COPYRIGHT: See COPYING in the top level directory
|
||||||
* PROJECT: ReactOS version of ntdll
|
* PROJECT: ReactOS version of ntdll
|
||||||
|
@ -29,14 +29,82 @@
|
||||||
|
|
||||||
/* FUNCTIONS ****************************************************************/
|
/* FUNCTIONS ****************************************************************/
|
||||||
|
|
||||||
|
void write_stub_header(FILE * out)
|
||||||
|
{
|
||||||
|
fputs
|
||||||
|
(
|
||||||
|
"/* Machine generated, don't edit */\n"
|
||||||
|
"\n"
|
||||||
|
"#ifdef __cplusplus\n"
|
||||||
|
"#define EXTERN_C extern \"C\"\n"
|
||||||
|
"#else\n"
|
||||||
|
"#define EXTERN_C\n"
|
||||||
|
"#endif\n"
|
||||||
|
"\n"
|
||||||
|
"EXTERN_C static __inline__ __attribute__((regparm(2)))"
|
||||||
|
"void*ZwRosSystemServiceThunk(long n,void*a)"
|
||||||
|
"{"
|
||||||
|
"void*ret;"
|
||||||
|
"__asm__"
|
||||||
|
"("
|
||||||
|
"\"int $0x2E\":"
|
||||||
|
"\"=a\"(ret):"
|
||||||
|
"\"a\"(n),\"d\"(a)"
|
||||||
|
");"
|
||||||
|
"return ret;"
|
||||||
|
"}\n",
|
||||||
|
out
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
void write_syscall_stub_func(FILE* out, char* name, unsigned nr_args,
|
||||||
|
unsigned int sys_call_idx)
|
||||||
|
{
|
||||||
|
unsigned i;
|
||||||
|
|
||||||
|
fprintf(out, "EXTERN_C void*__stdcall %s(", name);
|
||||||
|
|
||||||
|
if(nr_args == 0)
|
||||||
|
fputs("void", out);
|
||||||
|
else
|
||||||
|
for(i = 0; i < nr_args; ++ i)
|
||||||
|
{
|
||||||
|
if(i > 0)
|
||||||
|
fputs(",", out);
|
||||||
|
|
||||||
|
fprintf(out, "void*a%u", i);
|
||||||
|
}
|
||||||
|
|
||||||
|
fputs("){", out);
|
||||||
|
|
||||||
|
if(nr_args > 1)
|
||||||
|
for(i = 1; i < nr_args; ++ i)
|
||||||
|
fprintf(out, "(void)a%u;", i);
|
||||||
|
|
||||||
|
fprintf(out, "return ZwRosSystemServiceThunk(%u,", sys_call_idx);
|
||||||
|
|
||||||
|
if(nr_args == 0)
|
||||||
|
fputs("0", out);
|
||||||
|
else
|
||||||
|
fputs("&a0", out);
|
||||||
|
|
||||||
|
fputs(");}\n", out);
|
||||||
|
}
|
||||||
|
|
||||||
|
void write_syscall_stub(FILE* out1, FILE* out2, char* name,
|
||||||
|
unsigned nr_args, unsigned int sys_call_idx)
|
||||||
|
{
|
||||||
|
write_syscall_stub_func(out1, name, nr_args, sys_call_idx);
|
||||||
|
write_syscall_stub_func(out2, name, nr_args, sys_call_idx);
|
||||||
|
}
|
||||||
|
|
||||||
int makeSystemServiceTable(FILE *in, FILE *out)
|
int makeSystemServiceTable(FILE *in, FILE *out)
|
||||||
{
|
{
|
||||||
char line [INPUT_BUFFER_SIZE];
|
char line [INPUT_BUFFER_SIZE];
|
||||||
char *s;
|
char *s;
|
||||||
char *name;
|
char *name;
|
||||||
int sys_call_idx;
|
int sys_call_idx;
|
||||||
char *nr_args;
|
char *snr_args;
|
||||||
char *stmp;
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Main SSDT Header
|
* Main SSDT Header
|
||||||
|
@ -67,15 +135,7 @@ char *stmp;
|
||||||
{
|
{
|
||||||
/* Extract the NtXXX name */
|
/* Extract the NtXXX name */
|
||||||
name = (char *)strtok(s," \t");
|
name = (char *)strtok(s," \t");
|
||||||
/* Extract the stack size */
|
|
||||||
nr_args = (char *)strtok(NULL," \t");
|
|
||||||
/*
|
|
||||||
* Remove, if present, the trailing LF.
|
|
||||||
*/
|
|
||||||
if ((stmp = strchr(nr_args, '\n')) != NULL)
|
|
||||||
{
|
|
||||||
*stmp = '\0';
|
|
||||||
}
|
|
||||||
#ifdef VERBOSE
|
#ifdef VERBOSE
|
||||||
printf("%3d \"%s\"\n",sys_call_idx | INDEX,name);
|
printf("%3d \"%s\"\n",sys_call_idx | INDEX,name);
|
||||||
#endif
|
#endif
|
||||||
|
@ -123,14 +183,8 @@ char *stmp;
|
||||||
/* Extract the NtXXX name */
|
/* Extract the NtXXX name */
|
||||||
name = (char *)strtok(s," \t");
|
name = (char *)strtok(s," \t");
|
||||||
/* Extract the stack size */
|
/* Extract the stack size */
|
||||||
nr_args = (char *)strtok(NULL," \t");
|
snr_args = (char *)strtok(NULL," \t");
|
||||||
/*
|
|
||||||
* Remove, if present, the trailing LF.
|
|
||||||
*/
|
|
||||||
if ((stmp = strchr(nr_args, '\n')) != NULL)
|
|
||||||
{
|
|
||||||
*stmp = '\0';
|
|
||||||
}
|
|
||||||
#ifdef VERBOSE
|
#ifdef VERBOSE
|
||||||
printf("%3d \"%s\"\n",sys_call_idx|INDEX,name);
|
printf("%3d \"%s\"\n",sys_call_idx|INDEX,name);
|
||||||
#endif
|
#endif
|
||||||
|
@ -143,7 +197,7 @@ char *stmp;
|
||||||
* Now write the current system call's ID
|
* Now write the current system call's ID
|
||||||
* in the service table along with its Parameters Size.
|
* in the service table along with its Parameters Size.
|
||||||
*/
|
*/
|
||||||
fprintf(out,"\t\t%d",atoi(nr_args) * sizeof(void*));
|
fprintf(out,"\t\t%lu * sizeof(void*)", strtoul(snr_args, NULL, 0));
|
||||||
|
|
||||||
/* Next system call index */
|
/* Next system call index */
|
||||||
sys_call_idx++;
|
sys_call_idx++;
|
||||||
|
@ -177,21 +231,17 @@ process(
|
||||||
char * s;
|
char * s;
|
||||||
char * name; /* NtXXX name */
|
char * name; /* NtXXX name */
|
||||||
int sys_call_idx; /* NtXXX index number in the service table */
|
int sys_call_idx; /* NtXXX index number in the service table */
|
||||||
char * nr_args; /* stack_size / machine_word_size */
|
char * snr_args; /* stack_size / machine_word_size */
|
||||||
char * stmp;
|
|
||||||
int stacksize;
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* GDI32 stubs file header
|
* GDI32 stubs file header
|
||||||
*/
|
*/
|
||||||
fprintf(out1,"// Machine generated, don't edit\n");
|
write_stub_header(out1);
|
||||||
fprintf(out1,"\n\n");
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* USER32 stubs file header
|
* USER32 stubs file header
|
||||||
*/
|
*/
|
||||||
fprintf(out2,"// Machine generated, don't edit\n");
|
write_stub_header(out2);
|
||||||
fprintf(out2,"\n\n");
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Scan the database. DB is a text file; each line
|
* Scan the database. DB is a text file; each line
|
||||||
|
@ -230,48 +280,13 @@ process(
|
||||||
/* Extract the NtXXX name */
|
/* Extract the NtXXX name */
|
||||||
name = (char *)strtok(s," \t");
|
name = (char *)strtok(s," \t");
|
||||||
/* Extract the stack size */
|
/* Extract the stack size */
|
||||||
nr_args = (char *)strtok(NULL," \t");
|
snr_args = (char *)strtok(NULL," \t");
|
||||||
stacksize = atoi(nr_args)*sizeof(void*);
|
|
||||||
/*
|
|
||||||
* Remove, if present, the trailing LF.
|
|
||||||
*/
|
|
||||||
if ((stmp = strchr(nr_args, '\n')) != NULL)
|
|
||||||
{
|
|
||||||
*stmp = '\0';
|
|
||||||
}
|
|
||||||
#ifdef VERBOSE
|
#ifdef VERBOSE
|
||||||
printf("%3d \"%s\"\n",sys_call_idx | INDEX,name);
|
printf("%3d \"%s\"\n",sys_call_idx | INDEX,name);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/*
|
write_syscall_stub(out1, out2, name, strtoul(snr_args, NULL, 0), sys_call_idx | INDEX);
|
||||||
* Write the GDI32 stub for the current system call.
|
|
||||||
*/
|
|
||||||
#ifdef PARAMETERIZED_LIBS
|
|
||||||
fprintf(out1,"__asm__(\"\\n\\t.global _%s@%d\\n\\t\"\n",name,stacksize);
|
|
||||||
fprintf(out1,"\"_%s@%d:\\n\\t\"\n",name,stacksize);
|
|
||||||
#else
|
|
||||||
fprintf(out1,"__asm__(\"\\n\\t.global _%s\\n\\t\"\n",name);
|
|
||||||
fprintf(out1,"\"_%s:\\n\\t\"\n",name);
|
|
||||||
#endif
|
|
||||||
fprintf(out1,"\t\"mov\t$%d,%%eax\\n\\t\"\n",sys_call_idx | INDEX);
|
|
||||||
fprintf(out1,"\t\"lea\t4(%%esp),%%edx\\n\\t\"\n");
|
|
||||||
fprintf(out1,"\t\"int\t$0x2E\\n\\t\"\n");
|
|
||||||
fprintf(out1,"\t\"ret\t$%d\\n\\t\");\n\n",stacksize);
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Write the USER32 stub for the current system call
|
|
||||||
*/
|
|
||||||
#ifdef PARAMETERIZED_LIBS
|
|
||||||
fprintf(out2,"__asm__(\"\\n\\t.global _%s@%d\\n\\t\"\n",name,stacksize);
|
|
||||||
fprintf(out2,"\"_%s@%d:\\n\\t\"\n",name,stacksize);
|
|
||||||
#else
|
|
||||||
fprintf(out2,"__asm__(\"\\n\\t.global _%s\\n\\t\"\n",name);
|
|
||||||
fprintf(out2,"\"_%s:\\n\\t\"\n",name);
|
|
||||||
#endif
|
|
||||||
fprintf(out2,"\t\"mov\t$%d,%%eax\\n\\t\"\n",sys_call_idx | INDEX);
|
|
||||||
fprintf(out2,"\t\"lea\t4(%%esp),%%edx\\n\\t\"\n");
|
|
||||||
fprintf(out2,"\t\"int\t$0x2E\\n\\t\"\n");
|
|
||||||
fprintf(out2,"\t\"ret\t$%d\\n\\t\");\n\n",stacksize);
|
|
||||||
|
|
||||||
/* Next system call index */
|
/* Next system call index */
|
||||||
sys_call_idx++;
|
sys_call_idx++;
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
/* $Id: genntdll.c,v 1.16 2004/04/07 15:32:41 ekohl Exp $
|
/* $Id: genntdll.c,v 1.17 2004/04/12 22:07:45 hyperion Exp $
|
||||||
*
|
*
|
||||||
* COPYRIGHT: See COPYING in the top level directory
|
* COPYRIGHT: See COPYING in the top level directory
|
||||||
* PROJECT: ReactOS version of ntdll
|
* PROJECT: ReactOS version of ntdll
|
||||||
|
@ -11,6 +11,12 @@
|
||||||
* to twin NtXXX calls, via int 0x2e (x86).
|
* to twin NtXXX calls, via int 0x2e (x86).
|
||||||
* 19990617 (ea)
|
* 19990617 (ea)
|
||||||
* Fixed a bug in function numbers in kernel ZwXXX stubs.
|
* Fixed a bug in function numbers in kernel ZwXXX stubs.
|
||||||
|
* 20040406 (kjkh)
|
||||||
|
* The sysfuncs.lst file now specifies the number of parameters,
|
||||||
|
* not their stack size, for obvious portability reastons. Also, we
|
||||||
|
* now generate real C functions to let the compiler do the correct
|
||||||
|
* name decoration and whatever else (this also makes this tool
|
||||||
|
* marginally more portable).
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
@ -28,43 +34,80 @@
|
||||||
|
|
||||||
/* FUNCTIONS ****************************************************************/
|
/* FUNCTIONS ****************************************************************/
|
||||||
|
|
||||||
void write_syscall_stub(FILE* out, FILE* out3, char* name, char* name2,
|
void write_stub_header(FILE * out)
|
||||||
char* nr_args, unsigned int sys_call_idx)
|
|
||||||
{
|
{
|
||||||
#ifdef PARAMETERIZED_LIBS
|
fputs
|
||||||
fprintf(out,"__asm__(\"\\n\\t.global _%s@%s\\n\\t\"\n",name,nr_args);
|
(
|
||||||
fprintf(out,"\".global _%s@%s\\n\\t\"\n",name2,nr_args);
|
"/* Machine generated, don't edit */\n"
|
||||||
fprintf(out,"\"_%s@%s:\\n\\t\"\n",name,nr_args);
|
"\n"
|
||||||
fprintf(out,"\"_%s@%s:\\n\\t\"\n",name2,nr_args);
|
"#ifdef __cplusplus\n"
|
||||||
#else
|
"#define EXTERN_C extern \"C\"\n"
|
||||||
fprintf(out,"__asm__(\"\\n\\t.global _%s\\n\\t\"\n",name);
|
"#else\n"
|
||||||
fprintf(out,"\".global _%s\\n\\t\"\n",name2);
|
"#define EXTERN_C\n"
|
||||||
fprintf(out,"\"_%s:\\n\\t\"\n",name);
|
"#endif\n"
|
||||||
fprintf(out,"\"_%s:\\n\\t\"\n",name2);
|
"\n"
|
||||||
#endif
|
"EXTERN_C static __inline__ __attribute__((regparm(2)))"
|
||||||
fprintf(out,"\t\"pushl\t%%ebp\\n\\t\"\n");
|
"void*ZwRosSystemServiceThunk(long n,void*a)"
|
||||||
fprintf(out,"\t\"movl\t%%esp, %%ebp\\n\\t\"\n");
|
"{"
|
||||||
fprintf(out,"\t\"mov\t$%d,%%eax\\n\\t\"\n",sys_call_idx);
|
"void*ret;"
|
||||||
fprintf(out,"\t\"lea\t8(%%ebp),%%edx\\n\\t\"\n");
|
"__asm__"
|
||||||
fprintf(out,"\t\"int\t$0x2E\\n\\t\"\n");
|
"("
|
||||||
fprintf(out,"\t\"popl\t%%ebp\\n\\t\"\n");
|
"\"int $0x2E\":"
|
||||||
fprintf(out,"\t\"ret\t$%s\\n\\t\");\n\n",nr_args);
|
"\"=a\"(ret):"
|
||||||
|
"\"a\"(n),\"d\"(a)"
|
||||||
|
");"
|
||||||
|
"return ret;"
|
||||||
|
"}\n",
|
||||||
|
out
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
void write_syscall_stub_func(FILE* out, char* name, unsigned nr_args,
|
||||||
|
unsigned int sys_call_idx)
|
||||||
|
{
|
||||||
|
unsigned i;
|
||||||
|
|
||||||
|
fprintf(out, "EXTERN_C void*__stdcall %s(", name);
|
||||||
|
|
||||||
|
if(nr_args == 0)
|
||||||
|
fputs("void", out);
|
||||||
|
else
|
||||||
|
for(i = 0; i < nr_args; ++ i)
|
||||||
|
{
|
||||||
|
if(i > 0)
|
||||||
|
fputs(",", out);
|
||||||
|
|
||||||
|
fprintf(out, "void*a%u", i);
|
||||||
|
}
|
||||||
|
|
||||||
|
fputs("){", out);
|
||||||
|
|
||||||
|
if(nr_args > 1)
|
||||||
|
for(i = 1; i < nr_args; ++ i)
|
||||||
|
fprintf(out, "(void)a%u;", i);
|
||||||
|
|
||||||
|
fprintf(out, "return ZwRosSystemServiceThunk(%u,", sys_call_idx);
|
||||||
|
|
||||||
|
if(nr_args == 0)
|
||||||
|
fputs("0", out);
|
||||||
|
else
|
||||||
|
fputs("&a0", out);
|
||||||
|
|
||||||
|
fputs(");}\n", out);
|
||||||
|
}
|
||||||
|
|
||||||
|
void write_syscall_stub(FILE* out, FILE* out3, char* name, char* name2,
|
||||||
|
unsigned nr_args, unsigned int sys_call_idx)
|
||||||
|
{
|
||||||
|
write_syscall_stub_func(out, name, nr_args, sys_call_idx);
|
||||||
|
write_syscall_stub_func(out, name2, nr_args, sys_call_idx);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Now write the NTOSKRNL stub for the
|
* Now write the NTOSKRNL stub for the
|
||||||
* current system call. ZwXXX does NOT
|
* current system call. ZwXXX does NOT
|
||||||
* alias the corresponding NtXXX call.
|
* alias the corresponding NtXXX call.
|
||||||
*/
|
*/
|
||||||
fprintf(out3,"__asm__(\n");
|
write_syscall_stub_func(out3, name2, nr_args, sys_call_idx);
|
||||||
fprintf(out3,"\".global _%s@%s\\n\\t\"\n",name2,nr_args);
|
|
||||||
fprintf(out3,"\"_%s@%s:\\n\\t\"\n",name2,nr_args);
|
|
||||||
fprintf(out3,"\t\"pushl\t%%ebp\\n\\t\"\n");
|
|
||||||
fprintf(out3,"\t\"movl\t%%esp, %%ebp\\n\\t\"\n");
|
|
||||||
fprintf(out3,"\t\"mov\t$%d,%%eax\\n\\t\"\n",sys_call_idx);
|
|
||||||
fprintf(out3,"\t\"lea\t8(%%ebp),%%edx\\n\\t\"\n");
|
|
||||||
fprintf(out3,"\t\"int\t$0x2E\\n\\t\"\n");
|
|
||||||
fprintf(out3,"\t\"popl\t%%ebp\\n\\t\"\n");
|
|
||||||
fprintf(out3,"\t\"ret\t$%s\\n\\t\");\n\n",nr_args);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
int makeSystemServiceTable(FILE *in, FILE *out)
|
int makeSystemServiceTable(FILE *in, FILE *out)
|
||||||
|
@ -74,13 +117,13 @@ char *s;
|
||||||
char *name;
|
char *name;
|
||||||
char *name2;
|
char *name2;
|
||||||
int sys_call_idx;
|
int sys_call_idx;
|
||||||
char *nr_args;
|
char *snr_args;
|
||||||
char *stmp;
|
char *stmp;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Main SSDT Header
|
* Main SSDT Header
|
||||||
*/
|
*/
|
||||||
fprintf(out,"// Machine generated, don't edit\n");
|
fprintf(out,"/* Machine generated, don't edit */\n");
|
||||||
fprintf(out,"\n\n");
|
fprintf(out,"\n\n");
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -114,12 +157,12 @@ char *stmp;
|
||||||
/* Extract the ZwXXX name */
|
/* Extract the ZwXXX name */
|
||||||
name2 = (char *)strtok(NULL," \t");
|
name2 = (char *)strtok(NULL," \t");
|
||||||
//value = strtok(NULL," \t");
|
//value = strtok(NULL," \t");
|
||||||
/* Extract the stack size */
|
/* Extract the argument count */
|
||||||
nr_args = (char *)strtok(NULL," \t");
|
snr_args = (char *)strtok(NULL," \t");
|
||||||
/*
|
/*
|
||||||
* Remove, if present, the trailing LF.
|
* Remove, if present, the trailing LF.
|
||||||
*/
|
*/
|
||||||
if ((stmp = strchr(nr_args, '\n')) != NULL)
|
if ((stmp = strchr(snr_args, '\n')) != NULL)
|
||||||
{
|
{
|
||||||
*stmp = '\0';
|
*stmp = '\0';
|
||||||
}
|
}
|
||||||
|
@ -173,15 +216,8 @@ char *stmp;
|
||||||
/* Extract the ZwXXX name */
|
/* Extract the ZwXXX name */
|
||||||
name2 = (char *)strtok(NULL," \t");
|
name2 = (char *)strtok(NULL," \t");
|
||||||
//value = strtok(NULL," \t");
|
//value = strtok(NULL," \t");
|
||||||
/* Extract the stack size */
|
/* Extract the argument count */
|
||||||
nr_args = (char *)strtok(NULL," \t");
|
snr_args = (char *)strtok(NULL," \t");
|
||||||
/*
|
|
||||||
* Remove, if present, the trailing LF.
|
|
||||||
*/
|
|
||||||
if ((stmp = strchr(nr_args, '\n')) != NULL)
|
|
||||||
{
|
|
||||||
*stmp = '\0';
|
|
||||||
}
|
|
||||||
#ifdef VERBOSE
|
#ifdef VERBOSE
|
||||||
printf("%3d \"%s\"\n",sys_call_idx,name);
|
printf("%3d \"%s\"\n",sys_call_idx,name);
|
||||||
#endif
|
#endif
|
||||||
|
@ -194,7 +230,7 @@ char *stmp;
|
||||||
* Now write the current system call's ID
|
* Now write the current system call's ID
|
||||||
* in the service table along with its Parameters Size.
|
* in the service table along with its Parameters Size.
|
||||||
*/
|
*/
|
||||||
fprintf(out,"\t\t%s",nr_args);
|
fprintf(out,"\t\t%lu * sizeof(void *)",strtoul(snr_args, NULL, 0));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
/*
|
/*
|
||||||
|
@ -226,20 +262,18 @@ process(
|
||||||
char * name; /* NtXXX name */
|
char * name; /* NtXXX name */
|
||||||
char * name2; /* ZwXXX name */
|
char * name2; /* ZwXXX name */
|
||||||
int sys_call_idx; /* NtXXX index number in the service table */
|
int sys_call_idx; /* NtXXX index number in the service table */
|
||||||
char * nr_args; /* stack_size / machine_word_size */
|
char * snr_args; /* stack_size / machine_word_size */
|
||||||
char * stmp;
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* NTDLL stubs file header
|
* NTDLL stubs file header
|
||||||
*/
|
*/
|
||||||
fprintf(out,"// Machine generated, don't edit\n");
|
write_stub_header(out);
|
||||||
fprintf(out,"\n\n");
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* NTOSKRNL Zw functions stubs header
|
* NTOSKRNL Zw functions stubs header
|
||||||
*/
|
*/
|
||||||
fprintf(out3,"// Machine generated, don't edit\n");
|
write_stub_header(out3);
|
||||||
fprintf(out3,"\n\n");
|
|
||||||
/*
|
/*
|
||||||
* Scan the database. DB is a text file; each line
|
* Scan the database. DB is a text file; each line
|
||||||
* is a record, which contains data for one system
|
* is a record, which contains data for one system
|
||||||
|
@ -274,20 +308,16 @@ process(
|
||||||
s = & line[0];
|
s = & line[0];
|
||||||
if ((*s) != '#' && (*s) != '\0')
|
if ((*s) != '#' && (*s) != '\0')
|
||||||
{
|
{
|
||||||
|
unsigned nr_args;
|
||||||
|
|
||||||
/* Extract the NtXXX name */
|
/* Extract the NtXXX name */
|
||||||
name = (char *)strtok(s," \t");
|
name = (char *)strtok(s," \t");
|
||||||
/* Extract the ZwXXX name */
|
/* Extract the ZwXXX name */
|
||||||
name2 = (char *)strtok(NULL," \t");
|
name2 = (char *)strtok(NULL," \t");
|
||||||
//value = strtok(NULL," \t");
|
//value = strtok(NULL," \t");
|
||||||
/* Extract the stack size */
|
/* Extract the argument count */
|
||||||
nr_args = (char *)strtok(NULL," \t");
|
snr_args = (char *)strtok(NULL," \t");
|
||||||
/*
|
nr_args = strtoul(snr_args, NULL, 0);
|
||||||
* Remove, if present, the trailing LF.
|
|
||||||
*/
|
|
||||||
if ((stmp = strchr(nr_args, '\n')) != NULL)
|
|
||||||
{
|
|
||||||
*stmp = '\0';
|
|
||||||
}
|
|
||||||
#ifdef VERBOSE
|
#ifdef VERBOSE
|
||||||
printf("%3d \"%s\"\n",sys_call_idx,name);
|
printf("%3d \"%s\"\n",sys_call_idx,name);
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -1,213 +1,213 @@
|
||||||
NtAcceptConnectPort ZwAcceptConnectPort 24
|
NtAcceptConnectPort ZwAcceptConnectPort 6
|
||||||
NtAccessCheck ZwAccessCheck 32
|
NtAccessCheck ZwAccessCheck 8
|
||||||
NtAccessCheckAndAuditAlarm ZwAccessCheckAndAuditAlarm 44
|
NtAccessCheckAndAuditAlarm ZwAccessCheckAndAuditAlarm 11
|
||||||
NtAddAtom ZwAddAtom 8
|
NtAddAtom ZwAddAtom 2
|
||||||
NtAdjustGroupsToken ZwAdjustGroupsToken 24
|
NtAdjustGroupsToken ZwAdjustGroupsToken 6
|
||||||
NtAdjustPrivilegesToken ZwAdjustPrivilegesToken 24
|
NtAdjustPrivilegesToken ZwAdjustPrivilegesToken 6
|
||||||
NtAlertResumeThread ZwAlertResumeThread 8
|
NtAlertResumeThread ZwAlertResumeThread 2
|
||||||
NtAlertThread ZwAlertThread 4
|
NtAlertThread ZwAlertThread 1
|
||||||
NtAllocateLocallyUniqueId ZwAllocateLocallyUniqueId 4
|
NtAllocateLocallyUniqueId ZwAllocateLocallyUniqueId 1
|
||||||
NtAllocateUuids ZwAllocateUuids 12
|
NtAllocateUuids ZwAllocateUuids 3
|
||||||
NtAllocateVirtualMemory ZwAllocateVirtualMemory 24
|
NtAllocateVirtualMemory ZwAllocateVirtualMemory 6
|
||||||
NtCallbackReturn ZwCallbackReturn 12
|
NtCallbackReturn ZwCallbackReturn 3
|
||||||
NtCancelIoFile ZwCancelIoFile 8
|
NtCancelIoFile ZwCancelIoFile 2
|
||||||
NtCancelTimer ZwCancelTimer 8
|
NtCancelTimer ZwCancelTimer 2
|
||||||
NtClearEvent ZwClearEvent 4
|
NtClearEvent ZwClearEvent 1
|
||||||
NtClose ZwClose 4
|
NtClose ZwClose 1
|
||||||
NtCloseObjectAuditAlarm ZwCloseObjectAuditAlarm 12
|
NtCloseObjectAuditAlarm ZwCloseObjectAuditAlarm 3
|
||||||
NtCompleteConnectPort ZwCompleteConnectPort 4
|
NtCompleteConnectPort ZwCompleteConnectPort 1
|
||||||
NtConnectPort ZwConnectPort 32
|
NtConnectPort ZwConnectPort 8
|
||||||
NtContinue ZwContinue 8
|
NtContinue ZwContinue 2
|
||||||
NtCreateDirectoryObject ZwCreateDirectoryObject 12
|
NtCreateDirectoryObject ZwCreateDirectoryObject 3
|
||||||
NtCreateEvent ZwCreateEvent 20
|
NtCreateEvent ZwCreateEvent 5
|
||||||
NtCreateEventPair ZwCreateEventPair 12
|
NtCreateEventPair ZwCreateEventPair 3
|
||||||
NtCreateFile ZwCreateFile 44
|
NtCreateFile ZwCreateFile 11
|
||||||
NtCreateIoCompletion ZwCreateIoCompletion 16
|
NtCreateIoCompletion ZwCreateIoCompletion 4
|
||||||
NtCreateKey ZwCreateKey 28
|
NtCreateKey ZwCreateKey 7
|
||||||
NtCreateMailslotFile ZwCreateMailslotFile 32
|
NtCreateMailslotFile ZwCreateMailslotFile 8
|
||||||
NtCreateMutant ZwCreateMutant 16
|
NtCreateMutant ZwCreateMutant 4
|
||||||
NtCreateNamedPipeFile ZwCreateNamedPipeFile 56
|
NtCreateNamedPipeFile ZwCreateNamedPipeFile 14
|
||||||
NtCreatePagingFile ZwCreatePagingFile 16
|
NtCreatePagingFile ZwCreatePagingFile 4
|
||||||
NtCreatePort ZwCreatePort 20
|
NtCreatePort ZwCreatePort 5
|
||||||
NtCreateProcess ZwCreateProcess 32
|
NtCreateProcess ZwCreateProcess 8
|
||||||
NtCreateProfile ZwCreateProfile 36
|
NtCreateProfile ZwCreateProfile 9
|
||||||
NtCreateSection ZwCreateSection 28
|
NtCreateSection ZwCreateSection 7
|
||||||
NtCreateSemaphore ZwCreateSemaphore 20
|
NtCreateSemaphore ZwCreateSemaphore 5
|
||||||
NtCreateSymbolicLinkObject ZwCreateSymbolicLinkObject 16
|
NtCreateSymbolicLinkObject ZwCreateSymbolicLinkObject 4
|
||||||
NtCreateThread ZwCreateThread 32
|
NtCreateThread ZwCreateThread 8
|
||||||
NtCreateTimer ZwCreateTimer 16
|
NtCreateTimer ZwCreateTimer 4
|
||||||
NtCreateToken ZwCreateToken 52
|
NtCreateToken ZwCreateToken 13
|
||||||
NtCreateWaitablePort ZwCreateWaitablePort 20
|
NtCreateWaitablePort ZwCreateWaitablePort 5
|
||||||
NtDelayExecution ZwDelayExecution 8
|
NtDelayExecution ZwDelayExecution 2
|
||||||
NtDeleteAtom ZwDeleteAtom 4
|
NtDeleteAtom ZwDeleteAtom 1
|
||||||
NtDeleteFile ZwDeleteFile 4
|
NtDeleteFile ZwDeleteFile 1
|
||||||
NtDeleteKey ZwDeleteKey 4
|
NtDeleteKey ZwDeleteKey 1
|
||||||
NtDeleteObjectAuditAlarm ZwDeleteObjectAuditAlarm 12
|
NtDeleteObjectAuditAlarm ZwDeleteObjectAuditAlarm 3
|
||||||
NtDeleteValueKey ZwDeleteValueKey 8
|
NtDeleteValueKey ZwDeleteValueKey 2
|
||||||
NtDeviceIoControlFile ZwDeviceIoControlFile 40
|
NtDeviceIoControlFile ZwDeviceIoControlFile 10
|
||||||
NtDisplayString ZwDisplayString 4
|
NtDisplayString ZwDisplayString 1
|
||||||
NtDuplicateObject ZwDuplicateObject 28
|
NtDuplicateObject ZwDuplicateObject 7
|
||||||
NtDuplicateToken ZwDuplicateToken 24
|
NtDuplicateToken ZwDuplicateToken 6
|
||||||
NtEnumerateKey ZwEnumerateKey 24
|
NtEnumerateKey ZwEnumerateKey 6
|
||||||
NtEnumerateValueKey ZwEnumerateValueKey 24
|
NtEnumerateValueKey ZwEnumerateValueKey 6
|
||||||
NtExtendSection ZwExtendSection 8
|
NtExtendSection ZwExtendSection 2
|
||||||
NtFindAtom ZwFindAtom 8
|
NtFindAtom ZwFindAtom 2
|
||||||
NtFlushBuffersFile ZwFlushBuffersFile 8
|
NtFlushBuffersFile ZwFlushBuffersFile 2
|
||||||
NtFlushInstructionCache ZwFlushInstructionCache 12
|
NtFlushInstructionCache ZwFlushInstructionCache 3
|
||||||
NtFlushKey ZwFlushKey 4
|
NtFlushKey ZwFlushKey 1
|
||||||
NtFlushVirtualMemory ZwFlushVirtualMemory 16
|
NtFlushVirtualMemory ZwFlushVirtualMemory 4
|
||||||
NtFlushWriteBuffer ZwFlushWriteBuffer 0
|
NtFlushWriteBuffer ZwFlushWriteBuffer 0
|
||||||
NtFreeVirtualMemory ZwFreeVirtualMemory 16
|
NtFreeVirtualMemory ZwFreeVirtualMemory 4
|
||||||
NtFsControlFile ZwFsControlFile 40
|
NtFsControlFile ZwFsControlFile 10
|
||||||
NtGetContextThread ZwGetContextThread 8
|
NtGetContextThread ZwGetContextThread 2
|
||||||
NtGetPlugPlayEvent ZwGetPlugPlayEvent 16
|
NtGetPlugPlayEvent ZwGetPlugPlayEvent 4
|
||||||
NtGetTickCount ZwGetTickCount 4
|
NtGetTickCount ZwGetTickCount 1
|
||||||
NtImpersonateClientOfPort ZwImpersonateClientOfPort 8
|
NtImpersonateClientOfPort ZwImpersonateClientOfPort 2
|
||||||
NtImpersonateThread ZwImpersonateThread 12
|
NtImpersonateThread ZwImpersonateThread 3
|
||||||
NtInitializeRegistry ZwInitializeRegistry 4
|
NtInitializeRegistry ZwInitializeRegistry 1
|
||||||
NtListenPort ZwListenPort 8
|
NtListenPort ZwListenPort 2
|
||||||
NtLoadDriver ZwLoadDriver 4
|
NtLoadDriver ZwLoadDriver 1
|
||||||
NtLoadKey ZwLoadKey 8
|
NtLoadKey ZwLoadKey 2
|
||||||
NtLoadKey2 ZwLoadKey2 12
|
NtLoadKey2 ZwLoadKey2 3
|
||||||
NtLockFile ZwLockFile 40
|
NtLockFile ZwLockFile 10
|
||||||
NtLockVirtualMemory ZwLockVirtualMemory 16
|
NtLockVirtualMemory ZwLockVirtualMemory 4
|
||||||
NtMakeTemporaryObject ZwMakeTemporaryObject 4
|
NtMakeTemporaryObject ZwMakeTemporaryObject 1
|
||||||
NtMapViewOfSection ZwMapViewOfSection 40
|
NtMapViewOfSection ZwMapViewOfSection 10
|
||||||
NtNotifyChangeDirectoryFile ZwNotifyChangeDirectoryFile 36
|
NtNotifyChangeDirectoryFile ZwNotifyChangeDirectoryFile 9
|
||||||
NtNotifyChangeKey ZwNotifyChangeKey 40
|
NtNotifyChangeKey ZwNotifyChangeKey 10
|
||||||
NtOpenDirectoryObject ZwOpenDirectoryObject 12
|
NtOpenDirectoryObject ZwOpenDirectoryObject 3
|
||||||
NtOpenEvent ZwOpenEvent 12
|
NtOpenEvent ZwOpenEvent 3
|
||||||
NtOpenEventPair ZwOpenEventPair 12
|
NtOpenEventPair ZwOpenEventPair 3
|
||||||
NtOpenFile ZwOpenFile 24
|
NtOpenFile ZwOpenFile 6
|
||||||
NtOpenIoCompletion ZwOpenIoCompletion 12
|
NtOpenIoCompletion ZwOpenIoCompletion 3
|
||||||
NtOpenKey ZwOpenKey 12
|
NtOpenKey ZwOpenKey 3
|
||||||
NtOpenMutant ZwOpenMutant 12
|
NtOpenMutant ZwOpenMutant 3
|
||||||
NtOpenObjectAuditAlarm ZwOpenObjectAuditAlarm 48
|
NtOpenObjectAuditAlarm ZwOpenObjectAuditAlarm 12
|
||||||
NtOpenProcess ZwOpenProcess 16
|
NtOpenProcess ZwOpenProcess 4
|
||||||
NtOpenProcessToken ZwOpenProcessToken 12
|
NtOpenProcessToken ZwOpenProcessToken 3
|
||||||
NtOpenSection ZwOpenSection 12
|
NtOpenSection ZwOpenSection 3
|
||||||
NtOpenSemaphore ZwOpenSemaphore 12
|
NtOpenSemaphore ZwOpenSemaphore 3
|
||||||
NtOpenSymbolicLinkObject ZwOpenSymbolicLinkObject 12
|
NtOpenSymbolicLinkObject ZwOpenSymbolicLinkObject 3
|
||||||
NtOpenThread ZwOpenThread 16
|
NtOpenThread ZwOpenThread 4
|
||||||
NtOpenThreadToken ZwOpenThreadToken 16
|
NtOpenThreadToken ZwOpenThreadToken 4
|
||||||
NtOpenTimer ZwOpenTimer 12
|
NtOpenTimer ZwOpenTimer 3
|
||||||
NtPlugPlayControl ZwPlugPlayControl 16
|
NtPlugPlayControl ZwPlugPlayControl 4
|
||||||
NtPrivilegeCheck ZwPrivilegeCheck 12
|
NtPrivilegeCheck ZwPrivilegeCheck 3
|
||||||
NtPrivilegedServiceAuditAlarm ZwPrivilegedServiceAuditAlarm 20
|
NtPrivilegedServiceAuditAlarm ZwPrivilegedServiceAuditAlarm 5
|
||||||
NtPrivilegeObjectAuditAlarm ZwPrivilegeObjectAuditAlarm 24
|
NtPrivilegeObjectAuditAlarm ZwPrivilegeObjectAuditAlarm 6
|
||||||
NtProtectVirtualMemory ZwProtectVirtualMemory 20
|
NtProtectVirtualMemory ZwProtectVirtualMemory 5
|
||||||
NtPulseEvent ZwPulseEvent 8
|
NtPulseEvent ZwPulseEvent 2
|
||||||
NtQueryInformationAtom ZwQueryInformationAtom 20
|
NtQueryInformationAtom ZwQueryInformationAtom 5
|
||||||
NtQueryAttributesFile ZwQueryAttributesFile 8
|
NtQueryAttributesFile ZwQueryAttributesFile 2
|
||||||
NtQueryDefaultLocale ZwQueryDefaultLocale 8
|
NtQueryDefaultLocale ZwQueryDefaultLocale 2
|
||||||
NtQueryDirectoryFile ZwQueryDirectoryFile 44
|
NtQueryDirectoryFile ZwQueryDirectoryFile 11
|
||||||
NtQueryDirectoryObject ZwQueryDirectoryObject 28
|
NtQueryDirectoryObject ZwQueryDirectoryObject 7
|
||||||
NtQueryEaFile ZwQueryEaFile 36
|
NtQueryEaFile ZwQueryEaFile 9
|
||||||
NtQueryEvent ZwQueryEvent 20
|
NtQueryEvent ZwQueryEvent 5
|
||||||
NtQueryFullAttributesFile ZwQueryFullAttributesFile 8
|
NtQueryFullAttributesFile ZwQueryFullAttributesFile 2
|
||||||
NtQueryInformationFile ZwQueryInformationFile 20
|
NtQueryInformationFile ZwQueryInformationFile 5
|
||||||
NtQueryInformationPort ZwQueryInformationPort 20
|
NtQueryInformationPort ZwQueryInformationPort 5
|
||||||
NtQueryInformationProcess ZwQueryInformationProcess 20
|
NtQueryInformationProcess ZwQueryInformationProcess 5
|
||||||
NtQueryInformationThread ZwQueryInformationThread 20
|
NtQueryInformationThread ZwQueryInformationThread 5
|
||||||
NtQueryInformationToken ZwQueryInformationToken 20
|
NtQueryInformationToken ZwQueryInformationToken 5
|
||||||
NtQueryIntervalProfile ZwQueryIntervalProfile 8
|
NtQueryIntervalProfile ZwQueryIntervalProfile 2
|
||||||
NtQueryIoCompletion ZwQueryIoCompletion 20
|
NtQueryIoCompletion ZwQueryIoCompletion 5
|
||||||
NtQueryKey ZwQueryKey 20
|
NtQueryKey ZwQueryKey 5
|
||||||
NtQueryMultipleValueKey ZwQueryMultipleValueKey 24
|
NtQueryMultipleValueKey ZwQueryMultipleValueKey 6
|
||||||
NtQueryMutant ZwQueryMutant 20
|
NtQueryMutant ZwQueryMutant 5
|
||||||
NtQueryObject ZwQueryObject 20
|
NtQueryObject ZwQueryObject 5
|
||||||
NtQueryOleDirectoryFile ZwQueryOleDirectoryFile 44
|
NtQueryOleDirectoryFile ZwQueryOleDirectoryFile 11
|
||||||
NtQueryPerformanceCounter ZwQueryPerformanceCounter 8
|
NtQueryPerformanceCounter ZwQueryPerformanceCounter 2
|
||||||
NtQuerySection ZwQuerySection 20
|
NtQuerySection ZwQuerySection 5
|
||||||
NtQuerySecurityObject ZwQuerySecurityObject 20
|
NtQuerySecurityObject ZwQuerySecurityObject 5
|
||||||
NtQuerySemaphore ZwQuerySemaphore 20
|
NtQuerySemaphore ZwQuerySemaphore 5
|
||||||
NtQuerySymbolicLinkObject ZwQuerySymbolicLinkObject 12
|
NtQuerySymbolicLinkObject ZwQuerySymbolicLinkObject 3
|
||||||
NtQuerySystemEnvironmentValue ZwQuerySystemEnvironmentValue 16
|
NtQuerySystemEnvironmentValue ZwQuerySystemEnvironmentValue 4
|
||||||
NtQuerySystemInformation ZwQuerySystemInformation 16
|
NtQuerySystemInformation ZwQuerySystemInformation 4
|
||||||
NtQuerySystemTime ZwQuerySystemTime 4
|
NtQuerySystemTime ZwQuerySystemTime 1
|
||||||
NtQueryTimer ZwQueryTimer 20
|
NtQueryTimer ZwQueryTimer 5
|
||||||
NtQueryTimerResolution ZwQueryTimerResolution 12
|
NtQueryTimerResolution ZwQueryTimerResolution 3
|
||||||
NtQueryValueKey ZwQueryValueKey 24
|
NtQueryValueKey ZwQueryValueKey 6
|
||||||
NtQueryVirtualMemory ZwQueryVirtualMemory 24
|
NtQueryVirtualMemory ZwQueryVirtualMemory 6
|
||||||
NtQueryVolumeInformationFile ZwQueryVolumeInformationFile 20
|
NtQueryVolumeInformationFile ZwQueryVolumeInformationFile 5
|
||||||
NtQueueApcThread ZwQueueApcThread 20
|
NtQueueApcThread ZwQueueApcThread 5
|
||||||
NtRaiseException ZwRaiseException 12
|
NtRaiseException ZwRaiseException 3
|
||||||
NtRaiseHardError ZwRaiseHardError 24
|
NtRaiseHardError ZwRaiseHardError 6
|
||||||
NtReadFile ZwReadFile 36
|
NtReadFile ZwReadFile 9
|
||||||
NtReadFileScatter ZwReadFileScatter 36
|
NtReadFileScatter ZwReadFileScatter 9
|
||||||
NtReadRequestData ZwReadRequestData 24
|
NtReadRequestData ZwReadRequestData 6
|
||||||
NtReadVirtualMemory ZwReadVirtualMemory 20
|
NtReadVirtualMemory ZwReadVirtualMemory 5
|
||||||
NtRegisterThreadTerminatePort ZwRegisterThreadTerminatePort 4
|
NtRegisterThreadTerminatePort ZwRegisterThreadTerminatePort 1
|
||||||
NtReleaseMutant ZwReleaseMutant 8
|
NtReleaseMutant ZwReleaseMutant 2
|
||||||
NtReleaseSemaphore ZwReleaseSemaphore 12
|
NtReleaseSemaphore ZwReleaseSemaphore 3
|
||||||
NtRemoveIoCompletion ZwRemoveIoCompletion 20
|
NtRemoveIoCompletion ZwRemoveIoCompletion 5
|
||||||
NtReplaceKey ZwReplaceKey 12
|
NtReplaceKey ZwReplaceKey 3
|
||||||
NtReplyPort ZwReplyPort 8
|
NtReplyPort ZwReplyPort 2
|
||||||
NtReplyWaitReceivePort ZwReplyWaitReceivePort 16
|
NtReplyWaitReceivePort ZwReplyWaitReceivePort 4
|
||||||
NtReplyWaitReplyPort ZwReplyWaitReplyPort 8
|
NtReplyWaitReplyPort ZwReplyWaitReplyPort 2
|
||||||
NtRequestPort ZwRequestPort 8
|
NtRequestPort ZwRequestPort 2
|
||||||
NtRequestWaitReplyPort ZwRequestWaitReplyPort 12
|
NtRequestWaitReplyPort ZwRequestWaitReplyPort 3
|
||||||
NtResetEvent ZwResetEvent 8
|
NtResetEvent ZwResetEvent 2
|
||||||
NtRestoreKey ZwRestoreKey 12
|
NtRestoreKey ZwRestoreKey 3
|
||||||
NtResumeThread ZwResumeThread 8
|
NtResumeThread ZwResumeThread 2
|
||||||
NtSaveKey ZwSaveKey 8
|
NtSaveKey ZwSaveKey 2
|
||||||
NtSetIoCompletion ZwSetIoCompletion 20
|
NtSetIoCompletion ZwSetIoCompletion 5
|
||||||
NtSetContextThread ZwSetContextThread 8
|
NtSetContextThread ZwSetContextThread 2
|
||||||
NtSetDefaultHardErrorPort ZwSetDefaultHardErrorPort 4
|
NtSetDefaultHardErrorPort ZwSetDefaultHardErrorPort 1
|
||||||
NtSetDefaultLocale ZwSetDefaultLocale 8
|
NtSetDefaultLocale ZwSetDefaultLocale 2
|
||||||
NtSetEaFile ZwSetEaFile 16
|
NtSetEaFile ZwSetEaFile 4
|
||||||
NtSetEvent ZwSetEvent 8
|
NtSetEvent ZwSetEvent 2
|
||||||
NtSetHighEventPair ZwSetHighEventPair 4
|
NtSetHighEventPair ZwSetHighEventPair 1
|
||||||
NtSetHighWaitLowEventPair ZwSetHighWaitLowEventPair 4
|
NtSetHighWaitLowEventPair ZwSetHighWaitLowEventPair 1
|
||||||
NtSetHighWaitLowThread ZwSetHighWaitLowThread 0
|
NtSetHighWaitLowThread ZwSetHighWaitLowThread 0
|
||||||
NtSetInformationFile ZwSetInformationFile 20
|
NtSetInformationFile ZwSetInformationFile 5
|
||||||
NtSetInformationKey ZwSetInformationKey 16
|
NtSetInformationKey ZwSetInformationKey 4
|
||||||
NtSetInformationObject ZwSetInformationObject 16
|
NtSetInformationObject ZwSetInformationObject 4
|
||||||
NtSetInformationProcess ZwSetInformationProcess 16
|
NtSetInformationProcess ZwSetInformationProcess 4
|
||||||
NtSetInformationThread ZwSetInformationThread 16
|
NtSetInformationThread ZwSetInformationThread 4
|
||||||
NtSetInformationToken ZwSetInformationToken 16
|
NtSetInformationToken ZwSetInformationToken 4
|
||||||
NtSetIntervalProfile ZwSetIntervalProfile 8
|
NtSetIntervalProfile ZwSetIntervalProfile 2
|
||||||
NtSetLdtEntries ZwSetLdtEntries 24
|
NtSetLdtEntries ZwSetLdtEntries 6
|
||||||
NtSetLowEventPair ZwSetLowEventPair 4
|
NtSetLowEventPair ZwSetLowEventPair 1
|
||||||
NtSetLowWaitHighEventPair ZwSetLowWaitHighEventPair 4
|
NtSetLowWaitHighEventPair ZwSetLowWaitHighEventPair 1
|
||||||
NtSetLowWaitHighThread ZwSetLowWaitHighThread 0
|
NtSetLowWaitHighThread ZwSetLowWaitHighThread 0
|
||||||
NtSetSecurityObject ZwSetSecurityObject 12
|
NtSetSecurityObject ZwSetSecurityObject 3
|
||||||
NtSetSystemEnvironmentValue ZwSetSystemEnvironmentValue 8
|
NtSetSystemEnvironmentValue ZwSetSystemEnvironmentValue 2
|
||||||
NtSetSystemInformation ZwSetSystemInformation 12
|
NtSetSystemInformation ZwSetSystemInformation 3
|
||||||
NtSetSystemPowerState ZwSetSystemPowerState 12
|
NtSetSystemPowerState ZwSetSystemPowerState 3
|
||||||
NtSetSystemTime ZwSetSystemTime 8
|
NtSetSystemTime ZwSetSystemTime 2
|
||||||
NtSetTimer ZwSetTimer 28
|
NtSetTimer ZwSetTimer 7
|
||||||
NtSetTimerResolution ZwSetTimerResolution 12
|
NtSetTimerResolution ZwSetTimerResolution 3
|
||||||
NtSetValueKey ZwSetValueKey 24
|
NtSetValueKey ZwSetValueKey 6
|
||||||
NtSetVolumeInformationFile ZwSetVolumeInformationFile 20
|
NtSetVolumeInformationFile ZwSetVolumeInformationFile 5
|
||||||
NtShutdownSystem ZwShutdownSystem 4
|
NtShutdownSystem ZwShutdownSystem 1
|
||||||
NtSignalAndWaitForSingleObject ZwSignalAndWaitForSingleObject 16
|
NtSignalAndWaitForSingleObject ZwSignalAndWaitForSingleObject 4
|
||||||
NtStartProfile ZwStartProfile 4
|
NtStartProfile ZwStartProfile 1
|
||||||
NtStopProfile ZwStopProfile 4
|
NtStopProfile ZwStopProfile 1
|
||||||
NtSuspendThread ZwSuspendThread 8
|
NtSuspendThread ZwSuspendThread 2
|
||||||
NtSystemDebugControl ZwSystemDebugControl 24
|
NtSystemDebugControl ZwSystemDebugControl 6
|
||||||
NtTerminateProcess ZwTerminateProcess 8
|
NtTerminateProcess ZwTerminateProcess 2
|
||||||
NtTerminateThread ZwTerminateThread 8
|
NtTerminateThread ZwTerminateThread 2
|
||||||
NtTestAlert ZwTestAlert 0
|
NtTestAlert ZwTestAlert 0
|
||||||
NtUnloadDriver ZwUnloadDriver 4
|
NtUnloadDriver ZwUnloadDriver 1
|
||||||
NtUnloadKey ZwUnloadKey 4
|
NtUnloadKey ZwUnloadKey 1
|
||||||
NtUnlockFile ZwUnlockFile 20
|
NtUnlockFile ZwUnlockFile 5
|
||||||
NtUnlockVirtualMemory ZwUnlockVirtualMemory 16
|
NtUnlockVirtualMemory ZwUnlockVirtualMemory 4
|
||||||
NtUnmapViewOfSection ZwUnmapViewOfSection 8
|
NtUnmapViewOfSection ZwUnmapViewOfSection 2
|
||||||
NtVdmControl ZwVdmControl 8
|
NtVdmControl ZwVdmControl 2
|
||||||
NtWaitForMultipleObjects ZwWaitForMultipleObjects 20
|
NtWaitForMultipleObjects ZwWaitForMultipleObjects 5
|
||||||
NtWaitForSingleObject ZwWaitForSingleObject 12
|
NtWaitForSingleObject ZwWaitForSingleObject 3
|
||||||
NtWaitHighEventPair ZwWaitHighEventPair 4
|
NtWaitHighEventPair ZwWaitHighEventPair 1
|
||||||
NtWaitLowEventPair ZwWaitLowEventPair 4
|
NtWaitLowEventPair ZwWaitLowEventPair 1
|
||||||
NtWriteFile ZwWriteFile 36
|
NtWriteFile ZwWriteFile 9
|
||||||
NtWriteFileGather ZwWriteFileGather 36
|
NtWriteFileGather ZwWriteFileGather 9
|
||||||
NtWriteRequestData ZwWriteRequestData 24
|
NtWriteRequestData ZwWriteRequestData 6
|
||||||
NtWriteVirtualMemory ZwWriteVirtualMemory 20
|
NtWriteVirtualMemory ZwWriteVirtualMemory 5
|
||||||
NtW32Call ZwW32Call 20
|
NtW32Call ZwW32Call 5
|
||||||
NtCreateChannel ZwCreateChannel 8
|
NtCreateChannel ZwCreateChannel 2
|
||||||
NtListenChannel ZwListenChannel 8
|
NtListenChannel ZwListenChannel 2
|
||||||
NtOpenChannel ZwOpenChannel 8
|
NtOpenChannel ZwOpenChannel 2
|
||||||
NtReplyWaitSendChannel ZwReplyWaitSendChannel 12
|
NtReplyWaitSendChannel ZwReplyWaitSendChannel 3
|
||||||
NtSendWaitReplyChannel ZwSendWaitReplyChannel 16
|
NtSendWaitReplyChannel ZwSendWaitReplyChannel 4
|
||||||
NtSetContextChannel ZwSetContextChannel 4
|
NtSetContextChannel ZwSetContextChannel 1
|
||||||
NtYieldExecution ZwYieldExecution 0
|
NtYieldExecution ZwYieldExecution 0
|
||||||
|
|
Loading…
Reference in a new issue