亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? ktmgr.h

?? 小型的操作系統(tǒng)開發(fā)的原代碼
?? H
?? 第 1 頁 / 共 2 頁
字號(hào):
//***********************************************************************/
//    Author                    : Garry
//    Original Date             : Oct,18 2004
//    Module Name               : ktmgr.h
//    Module Funciton           : 
//                                This module countains kernel thread and kernel thread 
//                                manager's definition.
//
//                                ************
//                                This file is the most important file of Hello China.
//                                ************
//    Last modified Author      :
//    Last modified Date        :
//    Last modified Content     :
//                                1.
//                                2.
//    Lines number              :
//***********************************************************************/

#ifndef __KTMGR_H__
#define __KTMGR_H__

//
//***********************************************************************
//
#define SYSTEM_TIME_SLICE  10    //***** debug *****
#define MAX_THREAD_NAME    32    //Maximal kernel thread name's length.

DECLARE_PREDEFINED_OBJECT(__KERNEL_FILE)
DECLARE_PREDEFINED_OBJECT(__EVENT)


//Kernel thread's context.

BEGIN_DEFINE_OBJECT(__KERNEL_THREAD_CONTEXT)
    DWORD           dwEFlags;
    WORD            wCS;
	WORD            wReserved;
	DWORD           dwEIP;
	DWORD           dwEAX;
	DWORD           dwEBX;
	DWORD           dwECX;
	DWORD           dwEDX;
	DWORD           dwESI;
	DWORD           dwEDI;
	DWORD           dwEBP;
	DWORD           dwESP;

//
//The following macro is used to initialize a kernel thread's executation
//context.
//

#define INIT_EFLAGS_VALUE 512
#define INIT_KERNEL_THREAD_CONTEXT_I(lpContext,initEip,initEsp) \
    (lpContext)->dwEFlags    = INIT_EFLAGS_VALUE;               \
    (lpContext)->wCS         = 0x08;                            \
	(lpContext)->wReserved   = 0x00;                            \
	(lpContext)->dwEIP       = initEip;                         \
	(lpContext)->dwEAX       = 0x00000000;                      \
	(lpContext)->dwEBX       = 0x00000000;                      \
	(lpContext)->dwECX       = 0x00000000;                      \
	(lpContext)->dwEDX       = 0x00000000;                      \
	(lpContext)->dwESI       = 0x00000000;                      \
	(lpContext)->dwEDI       = 0x00000000;                      \
	(lpContext)->dwEBP       = 0x00000000;                      \
	(lpContext)->dwESP       = initEsp;

//
//In order to access the members of a context giving it's base address,
//we define the following macros to make this job easy.
//

#define CONTEXT_OFFSET_EFLAGS        0x00
#define CONTEXT_OFFSET_CS            0x04
#define CONTEXT_OFFSET_EIP           0x08
#define CONTEXT_OFFSET_EAX           0x0C
#define CONTEXT_OFFSET_EBX           0x10
#define CONTEXT_OFFSET_ECX           0x14
#define CONTEXT_OFFSET_EDX           0x18
#define CONTEXT_OFFSET_ESI           0x1C
#define CONTEXT_OFFSET_EDI           0x20
#define CONTEXT_OFFSET_EBP           0x24
#define CONTEXT_OFFSET_ESP           0x28

END_DEFINE_OBJECT()

//
//Common synchronization object's definition.
//The common synchronization object is a abstract object,all synchronization objects,such
//as event,mutex,etc,all inherited from this object.
//

BEGIN_DEFINE_OBJECT(__COMMON_SYNCHRONIZATION_OBJECT)
    DWORD                (*WaitForThisObject)(__COMMON_SYNCHRONIZATION_OBJECT*);
END_DEFINE_OBJECT()

//
//The following macro is defined to be used by other objects to inherit from
//common synchronization object.
//
#define INHERIT_FROM_COMMON_SYNCHRONIZATION_OBJECT \
	DWORD                (*WaitForThisObject)(__COMMON_OBJECT*);


//
//Kernel thread's message.
//

BEGIN_DEFINE_OBJECT(__KERNEL_THREAD_MESSAGE)
    WORD             wCommand;
    WORD             wParam;
	DWORD            dwParam;
	//DWORD            (*MsgAssocRoutine)(__KERNEL_THREAD_MESSAGE*);
END_DEFINE_OBJECT()

//
//The definition of kernel thread's message.
//

//#define KERNEL_MESSAGE_TERMINAL    0x0001
//#define KERNEL_MESSAGE_TIMER       0x0002

#ifndef MAX_KTHREAD_MSG_NUM
#define MAX_KTHREAD_MSG_NUM 32  //The maximal message number in the kernel thread's message
                                //queue.
#endif

								
#define KERNEL_THREAD_STATUS_RUNNING    0x00000001  //Kernel thread's status.
#define KERNEL_THREAD_STATUS_READY      0x00000002
#define KERNEL_THREAD_STATUS_SUSPENDED  0x00000003
#define KERNEL_THREAD_STATUS_SLEEPING   0x00000004
#define KERNEL_THREAD_STATUS_TERMINAL   0x00000005
#define KERNEL_THREAD_STATUS_BLOCKED    0x00000006

//
//Definition of kernel thread's priority.
//In V1.5,there are 17 kernel thread priority levels,separated into
//five groups,that are,CRITICAL,HIGH,NORMAL,LOW,IDLE,and in each group
//expect IDLE,there are four levels.
//
#define MAX_KERNEL_THREAD_PRIORITY      0x00000010  //16

#define PRIORITY_LEVEL_CRITICAL         0x00000010
#define PRIORITY_LEVEL_CRITICAL_1       0x00000010
#define PRIORIRY_LEVEL_CRITICAL_2       0x0000000F
#define PRIORITY_LEVEL_CRITICAL_3       0x0000000E
#define PRIORITY_LEVEL_CRITICAL_4       0x0000000D

#define PRIORITY_LEVEL_HIGH             0x0000000C
#define PRIORITY_LEVEL_HIGH_1           0x0000000C
#define PRIORITY_LEVEL_HIGH_2           0x0000000B
#define PRIORITY_LEVEL_HIGH_3           0x0000000A
#define PRIORITY_LEVEL_HIGH_4           0x00000009

#define PRIORITY_LEVEL_NORMAL           0x00000008
#define PRIORITY_LEVEL_NORMAL_1         0x00000008
#define PRIORITY_LEVEL_NORMAL_2         0x00000007
#define PRIORITY_LEVEL_NORMAL_3         0x00000006
#define PRIORITY_LEVEL_NORMAL_4         0x00000005

#define PRIORITY_LEVEL_LOW              0x00000004
#define PRIORITY_LEVEL_LOW_1            0x00000004
#define PRIORITY_LEVEL_LOW_2            0x00000003
#define PRIORITY_LEVEL_LOW_3            0x00000002
#define PRIORITY_LEVEL_LOW_4            0x00000001

#define PRIORITY_LEVEL_IDLE             0x00000000

//
//The following macros alse can be used to define kernel
//thread's priority,they are aliases for above priority level.
//
#define PRIORITY_LEVEL_REALTIME         PRIORITY_LEVEL_CRITICAL_1
//#define PRIORITY_LEVEL_CRITICAL         PRIORITY_LEVEL_CRITICAL_4
#define PRIORITY_LEVEL_IMPORTANT        PRIORITY_LEVEL_HIGH_1
//#define PRIORITY_LEVEL_NORMAL           PRIORITY_LEVEL_NORMAL_1
//#define PRIORITY_LEVEL_LOW              PRIORITY_LEVEL_LOW_1
#define PRIORITY_LEVEL_LOWEST           PRIORITY_LEVEL_IDLE
//#define PRIORITY_LEVEL_INVALID          0x00000000

//#define DEFAULT_STACK_SIZE              0x00004000  //Default stack size,if the dwStackSize
								                    //parameter of CreateKernelThread is 0,
													//then the CreateKernelThread will allocate
													//DEFAULT_STACK_SIZE bytes to be used as
													//stack.

//
//The kernel thread object's definition.
//

BEGIN_DEFINE_OBJECT(__KERNEL_THREAD_OBJECT)
    INHERIT_FROM_COMMON_OBJECT
	INHERIT_FROM_COMMON_SYNCHRONIZATION_OBJECT
	__KERNEL_THREAD_CONTEXT              KernelThreadContext;
    __KERNEL_THREAD_CONTEXT*             lpKernelThreadContext;   //Added in V1.5.
    DWORD                                dwThreadID;
	DWORD                                dwThreadStatus;          //Kernel Thread's current
	                                                              //status.
	__PRIORITY_QUEUE*                    lpWaitingQueue;          //Waiting queue of the
	                                                              //kernel thread object.
	                                                              //One kernel thread who
	                                                              //want to wait the current
	                                                              //kernel thread object
	                                                              //will be put into this
	                                                              //queue.

	DWORD                                dwThreadPriority;        //Initialize priority.
	DWORD                                dwScheduleCounter;       //Schedule counter,used to
	                                                              //control the scheduler.
	DWORD                                dwReturnValue;

	DWORD                                dwTotalRunTime;
	DWORD                                dwTotalMemSize;

	LPVOID                               lpHeapObject;           //Pointing to the heap list.
	LPVOID                               lpDefaultHeap;          //Default heap.

	BOOL                                 bUsedMath;              //If used math co-process.

	DWORD                                dwStackSize;
	LPVOID                               lpInitStackPointer;

	DWORD                                (*KernelThreadRoutine)(LPVOID);  //Start address.
	LPVOID                               lpRoutineParam;

	//The following four members are used to manage the message queue of the
	//current kernel thread.
	__KERNEL_THREAD_MESSAGE              KernelThreadMsg[MAX_KTHREAD_MSG_NUM];
	UCHAR                                ucMsgQueueHeader;
	UCHAR                                ucMsgQueueTrial;
	UCHAR                                ucCurrentMsgNum;
	UCHAR                                ucAligment;
	__PRIORITY_QUEUE*                    lpMsgWaitingQueue;

	DWORD                                dwUserData;  //User custom data.
	DWORD                                dwLastError;
	UCHAR                                KernelThreadName[MAX_THREAD_NAME];

	//Used by synchronous object to indicate the waiting result.
	DWORD                                dwWaitingStatus;
END_DEFINE_OBJECT()

//Kernel thread object's initialize and uninitialize routine's definition.
BOOL KernelThreadInitialize(__COMMON_OBJECT* lpThis);
VOID KernelThreadUninitialize(__COMMON_OBJECT* lpThis);


typedef DWORD (*__KERNEL_THREAD_ROUTINE)(LPVOID);  //Kernel thread's start routine.
typedef DWORD (*__THREAD_HOOK_ROUTINE)(__KERNEL_THREAD_OBJECT*,
									   DWORD*);    //Thread hook's protype.

#define THREAD_HOOK_TYPE_CREATE        0x00000001
#define THREAD_HOOK_TYPE_ENDSCHEDULE   0x00000002
#define THREAD_HOOK_TYPE_BEGINSCHEDULE 0x00000004
#define THREAD_HOOK_TYPE_TERMINAL      0x00000008

//Kernel Thread Manager's definition.

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
蜜桃视频第一区免费观看| 国产精品免费视频网站| 天天色综合成人网| 91麻豆精品国产91久久久| 日本美女一区二区| 日韩精品一区二区三区视频在线观看 | 欧美日韩精品福利| 亚洲成av人影院| 精品国产伦一区二区三区免费 | 一区二区三区欧美激情| 欧美美女喷水视频| 精品一区二区三区视频在线观看| 欧美成人一区二区三区在线观看 | 丝瓜av网站精品一区二区| 日韩精品一区二区三区swag| 国产精品一区二区果冻传媒| 亚洲天堂免费在线观看视频| 欧美视频一二三区| 国产精品91xxx| 亚洲特黄一级片| 欧美高清视频一二三区| 久久er99热精品一区二区| 国产精品久久久久久久久免费樱桃 | 午夜一区二区三区视频| 精品国产电影一区二区| 99热99精品| 日韩不卡在线观看日韩不卡视频| 国产午夜一区二区三区| 欧美在线免费视屏| 国产精品自拍在线| 亚洲高清不卡在线观看| 久久久精品国产免大香伊| 色老综合老女人久久久| 欧美aⅴ一区二区三区视频| 中文字幕一区二区三区四区不卡 | 欧美激情综合五月色丁香| 欧美三级三级三级| 成人网页在线观看| 青椒成人免费视频| 亚洲激情欧美激情| 欧美国产精品一区二区| 日韩一二三区不卡| 欧美视频精品在线| 成人看片黄a免费看在线| 强制捆绑调教一区二区| 亚洲综合av网| 一区在线播放视频| 久久老女人爱爱| 这里只有精品免费| 欧美三级中文字| 91理论电影在线观看| 国产一区二区电影| 日本成人在线电影网| 一区二区三区四区不卡视频| 中文字幕av一区 二区| 欧美成人video| 欧美区在线观看| 欧美亚洲高清一区二区三区不卡| av在线一区二区| 国产精品 日产精品 欧美精品| 免费看日韩精品| 亚洲大片精品永久免费| 亚洲欧美国产毛片在线| 国产精品福利在线播放| 国产欧美一区二区精品久导航| 精品精品欲导航| 日韩欧美国产午夜精品| 91精品国产乱码| 91麻豆精品国产自产在线观看一区| 91久久国产最好的精华液| av色综合久久天堂av综合| 国产高清视频一区| 国产精品一区二区男女羞羞无遮挡| 蜜臀av性久久久久av蜜臀妖精| 午夜视频一区二区三区| 天天爽夜夜爽夜夜爽精品视频| 亚洲成人激情社区| 日韩av电影免费观看高清完整版在线观看| 亚洲天堂成人在线观看| 日韩一区在线播放| 亚洲精品第1页| 亚洲最大色网站| 亚洲第一激情av| 首页国产丝袜综合| 蜜桃视频在线观看一区| 久久 天天综合| 国产成人av在线影院| 成人午夜电影久久影院| av一二三不卡影片| 日本高清无吗v一区| 精品污污网站免费看| 欧美绝品在线观看成人午夜影视| 欧美视频一区二区三区在线观看| 欧美体内she精高潮| 91精品在线麻豆| 久久久久久久久岛国免费| 中文字幕欧美国产| 亚洲伦理在线精品| 日韩av高清在线观看| 国产一区二区三区日韩| www.欧美日韩| av爱爱亚洲一区| 91精彩视频在线| 日韩欧美国产一区二区在线播放| 久久久噜噜噜久噜久久综合| 亚洲欧洲制服丝袜| 日本在线不卡视频| 国产1区2区3区精品美女| 一本色道久久综合狠狠躁的推荐| 欧美日韩午夜精品| 欧美变态tickle挠乳网站| 中文字幕中文字幕在线一区 | 中文字幕一区av| 亚洲成人三级小说| 国产精品一区二区你懂的| 色狠狠av一区二区三区| 精品国产一区二区在线观看| 国产精品久久久久影院亚瑟| 亚洲一区免费视频| 久久精品国产一区二区三| av在线不卡观看免费观看| 欧美美女网站色| 国产精品久久久久aaaa| 日本不卡在线视频| 91麻豆精品在线观看| 日韩欧美三级在线| 亚洲视频一区在线| 激情欧美一区二区三区在线观看| 日本韩国精品在线| 国产午夜精品久久| 日韩av电影天堂| 色婷婷亚洲婷婷| 久久久久久久久久久久久久久99 | 17c精品麻豆一区二区免费| 免费观看一级欧美片| 91福利精品视频| 亚洲国产成人私人影院tom| 秋霞av亚洲一区二区三| 色婷婷国产精品| 中文字幕+乱码+中文字幕一区| 麻豆精品一区二区综合av| 欧美在线免费播放| 国产精品国产馆在线真实露脸| 国模大尺度一区二区三区| 欧美一区在线视频| 亚洲国产你懂的| 色婷婷精品久久二区二区蜜臀av| 久久日韩粉嫩一区二区三区| 日本不卡视频在线| 欧美疯狂做受xxxx富婆| 一区二区欧美在线观看| youjizz久久| 中文字幕二三区不卡| 国产毛片精品视频| 久久综合九色综合欧美亚洲| 日韩av一级片| 8x8x8国产精品| 天天色天天操综合| 欧美精品久久一区| 亚洲va中文字幕| 欧美日韩亚洲综合在线| 亚洲国产一区二区a毛片| 欧美在线免费观看亚洲| 一区二区三区四区视频精品免费 | 国产日产欧美一区二区三区| 国产综合久久久久影院| 日韩你懂的在线播放| 美腿丝袜亚洲色图| 日韩精品一区二区三区四区视频 | 成人欧美一区二区三区白人 | 午夜欧美一区二区三区在线播放| 在线免费一区三区| 亚洲综合无码一区二区| 在线免费观看日本欧美| 亚洲高清不卡在线观看| 91精品国产日韩91久久久久久| 日本免费在线视频不卡一不卡二| 欧美一区二区三区在线看| 日本vs亚洲vs韩国一区三区| 日韩一区二区三区在线观看| 久久99久久精品| 国产欧美va欧美不卡在线| 大尺度一区二区| 亚洲欧美精品午睡沙发| 欧美高清视频一二三区| 久久精品久久99精品久久| 国产三级精品视频| 色综合色狠狠天天综合色| 亚洲一区二区高清| 欧美mv日韩mv亚洲| 成人久久久精品乱码一区二区三区 | 在线欧美日韩精品| 日本aⅴ亚洲精品中文乱码| 欧美大片顶级少妇| 成人黄色免费短视频| 洋洋av久久久久久久一区| 欧美一区二区三区小说| 国产精品系列在线观看| 亚洲黄色免费电影| 欧美一区二区三区视频|