⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sprofile.c

📁 可用于嵌入式编程学习
💻 C
📖 第 1 页 / 共 2 页
字号:
		"FS_FindFirstFileW",
		"FS_CreateFileW",
		"FS_CeRegisterFileSystemNotification",
		"FS_CeRegisterReplNotification",
		"FS_CeOidGetInfo",
		"FS_CeFindFirstDatabase",
		"FS_CeCreateDatabase",
		"FS_CeSetDatabaseInfo",
		"FS_CeOpenDatabase",
    "prgRegCloseKey",
    "prgRegCreateKeyExW",
    "prgRegDeleteKeyW",
    "prgRegDeleteValueW",
    "prgRegEnumValueW",
    "prgRegEnumKeyExW",
    "prgRegOpenKeyExW",
    "prgRegQueryInfoKeyW",
    "prgRegQueryValueExW",
    "prgRegSetValueExW",
		"FS_CreateContainerW",
		"FS_CeDeleteDatabase",
		"FS_RegisterDevice",
		"FS_DeregisterDevice",
		"FS_SetFileAttributesW",
		"FS_GetStoreInformation",
		"FS_CeGetReplChangeMask",
		"FS_CeSetReplChangeMask",
		"FS_CeGetReplChangeBits",
		"FS_CeClearReplChangeBits",
		"FS_CeGetReplOtherBits",
		"FS_CeSetReplOtherBits",
		"FS_GetSystemMemoryDivision",
		"FS_SetSystemMemoryDivision"
	};
  // from coreos\filesys\filesys.c, class name "W32H"
  char *W32HNames[] = { 
    "FS_CloseFileHandle",
    "0",
    "FS_ReadFile",
    "FS_WriteFile",
    "FS_GetFileSize",
    "FS_SetFilePointer",
    "FS_GetFileInformationByHandle",
		"FS_FlushFileBuffers",
		"FS_GetFileTime",
		"FS_SetFileTime",
		"FS_SetEndOfFile",
		"FS_DeviceIoControl"
	};
// from coreos\filesys\filesys.c, class name "W32D"
  char *W32DNames[] = { 
    "FS_DevCloseFileHandle",
    "0",
    "FS_DevReadFile",
    "FS_DevWriteFile",
    "FS_DevGetFileSize",
    "FS_DevSetFilePointer",
    "FS_DevGetFileInformationByHandle",
		"FS_DevFlushFileBuffers",
		"FS_DevGetFileTime",
		"FS_DevSetFileTime",
		"FS_DevSetEndOfFile",
		"FS_DevDeviceIoControl"
	};
  // from coreos\filesys\filesys.c, class name "FFHN"
  char *FFHNNames[] = { 
		"FS_FindClose",
    "0",
		"FS_FindNextFile"
	};
	// from coreos\filesys\filesys.c, class name "DBFA"	
  char *DBFANames[] = { 
		"FS_CloseDBFindHandle",
		"0",
		"FS_CeFindNextDatabase"
  };
  // from coreos\filesys\filesys.c, class name "DBOA"
  char *DBOANames[] = { 
		"FS_CloseDBHandle",
		"0",
		"FS_CeSeekDatabase",
		"FS_CeDeleteRecord",
		"FS_CeReadRecordProps",
		"FS_CeWriteRecordProps"
  };
  // from coreos\nk\kernel\kwin32.c, class name Wn32
  char *Wn32Names[] = { 
    "SC_Nop",
    "SC_NotSupported",
    "SC_CreateAPISet",
    "SC_VirtualAlloc",
    "SC_VirtualFree",
    "SC_VirtualProtect",
    "SC_VirtualQuery",
    "SC_VirtualCopy",
	"SC_LoadLibraryW",
	"SC_FreeLibrary",
	"SC_GetProcAddressW",
	"SC_ThreadAttachAllDLLs",
	"SC_ThreadDetachAllDLLs",
	"SC_GetTickCount",
	"OutputDebugStringW",
	"SC_NotSupported",
	"SC_TlsCall",
	"SC_GetSystemInfo",
	"0",
	"ropen",
	"rread",
	"rwrite",
	"rlseek",
	"rclose",
	"0",
	"0",
	"SC_RegisterDbgZones",
	"SC_NotSupported",
	"NKDbgPrintfW",
	"SC_ProfileSyscall",
	"SC_FindResource",
	"SC_LoadResource",
	"SC_NotSupported",
	"SC_SizeofResource",
	"OEMGetRealTime",
	"OEMSetRealTime",
	"SC_ProcessDetachAllDLLs",
	"SC_ExtractResource",
	"SC_GetRomFileInfo",
	"SC_GetRomFileBytes",
	"SC_CacheSync",
	"SC_AddTrackedItem",
	"SC_DeleteTrackedItem",
	"SC_PrintTrackedItem",
	"SC_GetKPhys",
	"SC_GiveKPhys"
  };
  // from coreos\nk\kernel\kwin32.c, class name KW32
  char *KW32Names[] = { 
    "SysCall_NOT_SUPPORTED",
    "SysCall_NOT_SUPPORTED",
    "SC_GetOwnerProcess",
    "SC_GetCallerProcess",
    "SC_PerformCallBack",
		"SC_InterruptInitialize",
		"SC_InterruptDone",
		"SC_InterruptDisable",
		"SC_GetCurrentProcessId",
		"SC_GetCurrentThreadId",
		"SC_IsPrimaryThread",
		"SC_KillAllOtherThreads",
		"SC_OtherThreadsRunning",
		"SC_SetProcPermissions",
		"SC_CallDebugger",
		"SC_SetKernelAlarm",
		"SC_RaiseException",
		"SC_GetCurrentPermissions",
		"SC_GetFSHeapInfo",
		"SC_SetKMode",
		"SC_GetProcAddrBits"
	};
  // from coreos\nk\kernel\schedule.c, class name THRD
  char *THRDNames[] = {
		"SysCall_THREAD_HANDLECLOSE",
		"SysCall_NOT_SUPPORTED",
		"SysCall_THREAD_TAKECRITSEC",
		"SysCall_THREAD_RELEASECRITSEC",
		"SysCall_THREAD_SUSPEND",
		"SysCall_THREAD_RESUME",
		"SysCall_THREAD_SLEEP",
		"SysCall_THREAD_CREATEEVENT",
		"SysCall_THREAD_SETPRIO",
		"SysCall_THREAD_GETPRIO",
		"SysCall_THREAD_SETLASTERROR",
		"SysCall_THREAD_GETLASTERROR",
		"SysCall_THREAD_TERMINATE",
		"SysCall_THREAD_GETRETCODE",
		"SysCall_THREAD_LOADSWITCH",
		"SysCall_THREAD_TERMINATE_AND_SIGNAL",
		"0",
		"SysCall_THREAD_TURNONPROFILING",
		"SysCall_THREAD_TURNOFFPROFILING",
		"SysCall_THREAD_TURNONSYSCALLPROFILING",
		"SysCall_THREAD_TURNOFFSYSCALLPROFILING"
	};
  // from coreos\nk\kernel\schedule.c, class name PROC
  char *PROCNames[] = {
		"SysCall_PROC_HANDLECLOSE",
		"SysCall_NOT_SUPPORTED",
		"SysCall_NOT_SUPPORTED",
		"SysCall_NOT_SUPPORTED",
		"SysCall_PROC_ALLOCMODULE",
		"SysCall_PROC_FREEMODULE",
		"SysCall_PROC_GETDEFSTACKSIZE",
		"SysCall_PROC_TERMINATE",
		"SC_PROC_IsBadPtr",
		"SysCall_PROC_SETDBGZONE",
		"SysCall_PROC_SETDBGINFO",
		"SysCall_PROC_GETDBGINFO",
    "SysCall_PROC_MAPPTR",
		"SysCall_PROC_MAPTOPROC",
		"SysCall_PROC_GETPROCFROMPTR",
		"SysCall_PROC_TERMINATEOTHER"
	};
  // from coreos\nk\kernel\schedule.c, class name EVNT
  char *EVNTNames[] = {
		"SysCall_EVENT_FREE",
		"SysCall_EVENT_WAIT",
		"SysCall_EVENT_MODIFY"
	};
  // from shell\notify\server\process.cpp, class name "NTFY"
  char *NTFYNames[] = { 
		"NotifyCallback",
		"PegSetUserNotification",
		"PegClearUserNotification",
		"PegRunAppAtTime",
		"PegRunAppAtEvent",
		"PegHandleAppNotifications"
	};
  // from shell\shell\server\shell.cpp, class name "SHEL"
  char *SHELNames[] = { 
    "ShellNotifyCallback",
    "ShellApiReservedForNK", /* Reserved for NK */
    "XShellExecuteEx",
		"XGetOpenFileName",
		"XGetSaveFileName",
		"SHGetFileInfo",
		"Shell_NotifyIcon",
		"SHAddToRecentDocs",
		"SHCreateShortcut",
		"SHCreateExplorerInstance"
  };
  // from coreos\nk\kernel\objdisp.c, class name "APIS"
  char *APISNames[] = {
	"SC_CloseAPISet",
    "SC_NotSupported",
    "SC_RegisterAPISet",
    "SC_CreateAPIHandle",
    "SC_VerifyAPIHandle"
	};


char *MethodToName(long iMethod, char ClassName[4]) 
{
	if (UNKNOWNMETHOD == iMethod) {
		return NULL;
	} else if (!strncmp(ClassName, "GDI", 3)) {
		return GDINames[iMethod];
	} else if (!strncmp(ClassName, "USER", 3)) {
		return USERNames[iMethod];
	} else if (!strncmp(ClassName, "INT", 3)) {
		return INTNames[iMethod];
	} else if (!strncmp(ClassName, "TEST", 3)) {
		return TESTNames[iMethod];
	} else if (!strncmp(ClassName, "W32A", 4)) {
		return W32ANames[iMethod];
	} else if (!strncmp(ClassName, "W32D", 4)) {
		return W32DNames[iMethod];
	} else if (!strncmp(ClassName, "W32H", 4)) {
		return W32HNames[iMethod];
	} else if (!strncmp(ClassName, "FFHN", 3)) {
		return FFHNNames[iMethod];
	} else if (!strncmp(ClassName, "DBFA", 3)) {
		return DBFANames[iMethod];
	} else if (!strncmp(ClassName, "DBOA", 3)) {
		return DBOANames[iMethod];
	} else if (!strncmp(ClassName, "Wn32", 3)) {
		return Wn32Names[iMethod];
	} else if (!strncmp(ClassName, "KW32", 3)) {
		return KW32Names[iMethod];
	} else if (!strncmp(ClassName, "NTFY", 3)) {
		return NTFYNames[iMethod];
	} else if (!strncmp(ClassName, "SHEL", 3)) {
		return SHELNames[iMethod];	
	} else if (!strncmp(ClassName, "PROC", 3)) {
		return PROCNames[iMethod];	
	} else if (!strncmp(ClassName, "THRD", 3)) {
		return THRDNames[iMethod];	
	} else if (!strncmp(ClassName, "EVNT", 3)) {
		return EVNTNames[iMethod];	
	} else if (!strncmp(ClassName, "APIS", 3)) {
		return APISNames[iMethod];	
	} else {
		RETAILMSG(1,(L"Unknown class name %a\r\n", ClassName));
		return NULL;
	}
}

// Not normal strncmp returns
int strncmp(const char *s1, const char *s2, unsigned int l)
{
	unsigned int i;
	if (!s1 || !s2) {
		return 1;
	}
	for (i = 0; i < l; i++) {
		if (s1[i] != s2[i]) {
			return 1;
    }
  }
	return 0;
}

#endif /*SYSCALL_PROFILING*/

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -