加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

reactos操作系统实现(172)

发布时间:2020-12-15 04:58:50 所属栏目:百科 来源:网络整理
导读:NtUserTranslateMessage 函数实现键盘的消息转换,实现代码如下: #001 BOOL APIENTRY #002 NtUserTranslateMessage(LPMSG lpMsg, #003 HKL dwhkl) #004 { #005 NTSTATUS Status; #006 MSG SafeMsg; #007 DECLARE_RETURN(BOOL); #008 进入界面临界区代码。 #

NtUserTranslateMessage函数实现键盘的消息转换,实现代码如下:

#001 BOOL APIENTRY

#002 NtUserTranslateMessage(LPMSG lpMsg,

#003 HKL dwhkl)

#004 {

#005 NTSTATUS Status;

#006 MSG SafeMsg;

#007 DECLARE_RETURN(BOOL);

#008

进入界面临界区代码。

#009 DPRINT("Enter NtUserTranslateMessage/n");

#010 UserEnterExclusive();

#011

从用户空间拷贝消息到内核。

#012 Status = MmCopyFromCaller(&SafeMsg,lpMsg,sizeof(MSG));

#013 if(!NT_SUCCESS(Status))

#014 {

#015 SetLastNtError(Status);

#016 RETURN( FALSE);

#017 }

#018

调用函数IntTranslateKbdMessage来转换键盘消息。

#019 RETURN( IntTranslateKbdMessage(&SafeMsg,dwhkl));

#020

#021 CLEANUP:

#022 DPRINT("Leave NtUserTranslateMessage: ret=%i/n",_ret_);

#023 UserLeave();

#024 END_CLEANUP;

#025}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读