ReacOS啟動分析

1.代碼從MBR啟動(boot\freeldr\bootsect\dosmbr.asm)2.轉到硬碟開機磁碟分割(boot\freeldr\bootsect\fat32.asm),它負責尋找freeldr.sys。找到後載入到0000:8000h,然後找到freeldr.sys的入口地址。3.代碼跳轉到_mainCRTStartup代碼(boot\freeldr\freeldr\arch\i386\fathelp.asm)。4._mainCRTStartup是三個位元組的16位代碼,跳轉到boo

得到分區資訊

#include <stdio.h>#include <windows.h>#include <winioctl.h>int main(void){//LPCTSTR lpszDevice = "\\\\.\\PhysicalDrive0";LPCTSTR lpszDevice = "\\\\.\\C:";HANDLE hDevice =

WTL訊息映射

BEGIN_MSG_MAP宏產生一個類函數,視窗函數會調用這個類函數。 調試的時候會發現當訊息來的時候,調試器會跟蹤到BEGIN_MSG_MAP和END_MSG_MAP()塊之間。另外還有個宏更好用,它是BEGIN_MSG_MAP_EX MESSAGE_HANDLER可以截獲訊息 COMMAND_ID_HANDLER可以截獲WM_COMMAND訊息 CHAIN_MSG_MAP可以將訊息轉到別的類     BEGIN_MSG_MAP(CMainFrame)   

ATL學習小結

一邊情況下,COM組件會是這樣。 class ATL_NO_VTABLE CMath :    public CComObjectRootEx<CComSingleThreadModel>,    public CComCoClass<CMath, &CLSID_Math>,    public IMath,    public IAdvancedMath { ... }

ATL中的trunk

ATL用類封裝了Windows的操縱。但視窗函數必須是靜態函數,不可以是類函數。trunk可以將靜態函數,轉到類函數裡。ModuleHelper::AddCreateWndData(&m_thunk.cd, this); 可以將CWindowImp的的this指標存入trunck結構中。 CWindowImplBaseT< TBase, TWinTraits >* pThis = (CWindowImplBaseT< TBase, TWinTraits >*)

WTL使用ATL的CImage

CImage會用到ATL中的CPoint等類,而這些類是全域的,沒有namespace,和WTL::CPoint會衝突。解決辦法在stdafx.h中#define WIN32_LEAN_AND_MEAN #define _WTL_USE_CSTRING #define _WTL_NO_WTYPES #include <atlbase.h> #include <atlapp.h>        // base WTL classes extern

WTL的子例化

子例化需要繼承WTL中的CWindowImpl,例如 class CEditImpl : public CWindowImpl<CEditImpl, CEdit> {     BEGIN_MSG_MAP(CEditImpl)         MSG_WM_CONTEXTMENU(OnContextMenu)     END_MSG_MAP()     void OnContextMenu ( HWND hwndCtrl, CPoint

你是使用百度多,還是使用Google多呢?

    我搜速資料通常是使用Google,只有在有時Google不能使用時我才使用百度,為了方便我還把IE的首頁也設成了http://www.google.com/。    前幾天,我在部落格http://anjou.cnblogs.com/中添加了“訪問統計”功能。看了統計報告,真的是讓我很驚訝!統計報告顯示從搜尋引擎來訪我的部落格訪問記錄大部分來自百度。     從搜尋引擎來訪的統計報告如下(圖):          從搜尋引擎來訪,82%來自百度,18%來自Google。    

ATL接收事件 非ActiveX控制項

使用IDispEventImpl或IDispEventSimpleImpl 對於IDispEventSimpleImpl,需要準備一個IDispEventImpl資料結構,並且用SINK_ENTRY_INFO 對於IDispEventImpl,需要指定lib,版本號碼等資訊。用宏SINK_ENTRY_EX

自旋鎖實驗

#include <windows.h>#include <stdio.h>typedef ULONG_PTR KSPIN_LOCK, *PKSPIN_LOCK;VOID WINAPIKeInitializeSpinLock( IN PKSPIN_LOCK SpinLock ){*SpinLock = 0;}__declspec( naked ) VOID WINAPIKeAcquireSpinLockAtDpcLevel(IN PKSPIN_LOCK

ATL建立對象

匯入類庫 #include <atlcom.h>#import "c:\atl3.dll" no_namespace, named_guids, raw_interfaces_only -------------------------------------------------------------------------------------------------::CoInitialize( NULL );// 如果在這裡進行 COM

ATL接收事件 ActiveX控制項

對於ActiveX控制項所在的對話方塊,需要繼承public IDispEventImpl<IDC_IE, CMainDlg> 如 class CMainDlg : public CAxDialogImpl<CMainDlg>, public CUpdateUI<CMainDlg>, public CMessageFilter, public CIdleHandler, public

如何在部落格園xxx.cnblogs.com中添加訪問統計

在部落格園xxx.cnblogs.com中添加訪問統計的方法:1. 到中國站長聯盟http://www.cnzz.com申請統計帳號(免費)。 2. 在你的帳號下添加一個網站。 3. 擷取統計代碼。 4. 然後進入你的部落格,管理 » Options » Configure » 頁尾Html代碼,粘貼你擷取的統計代碼。 5. 最後登入中國站長聯盟http://www.cnzz.com,就可以查看訪問統計了。 本文地址:http://www.cnblogs.com/anjou/archive/20

用ATL Host ActiveX

---------------------------------------------------#if _ATL_VER < 0x0700hRes = _Module.Init(NULL, hInstance);#elsehRes = _Module.Init(NULL, hInstance, &LIBID_ATLLib);#endifATLASSERT(SUCCEEDED(hRes));AtlAxWinInit();-----------------------------

ATL使用IE控制項,並且屏蔽右鍵

首先先實現IDocHostUIHandlerDispatch介面 --------------------------------------------------------------------------------------------class ATL_NO_VTABLE CMyUIHandler : public CComObjectRootEx<CComSingleThreadModel>,public CComCoClass<CMyUIHandler&

PCR和PRCB

在Ring0下,fs指向PCR,而PRCB是PCR的一個擴充。可以用!pcr和!prcb命令查看,例如:kd> !pcr KPCR for Processor 0 at ffdff000:     Major 1 Minor 1     NtTib.ExceptionList: 80551158         NtTib.StackBase: 80551970        NtTib.StackLimit: 8054eb80     

CriticalSection vs Mutex

1. CriticalSection不需要進入核心就可以使用,速度比Mutex快100倍。2. CriticalSection只能用於同一個進程,而Mutex可以被不同進程使用 CriticalSection的虛擬碼CRITICAL_SECTION s;void EnterCriticalSection( CRITICAL_SECTION* s ){ int spin_count = s.max_count; while( --spin_count >= 0 ) {

MmInitializeMemoryManager分析一

MmInitializeMemoryManager函數是BootMain函數中很重要的一步。MmInitializeMemoryManager的前面會列印出一段log,代碼如下。#if DBG // Dump the system memory map DPRINTM(DPRINT_MEMORY, "System Memory Map (Base Address, Length, Type):\n"); while ((MemoryDescriptor =

RunLoader分析一

MachHwDetect調用,它其實是個宏,對應i386,它對應著PcHwDetect。 SystemKey = DetectSystem(); /* Detect buses */ DetectPciBios(SystemKey, &BusNumber); DetectApmBios(SystemKey, &BusNumber); DetectPnpBios(SystemKey, &BusNumber); DetectIsaBios(SystemKey,

ObReferenceObjectByName的使用

聲明extern POBJECT_TYPE *IoDriverObjectType;NTKERNELAPINTSTATUSObReferenceObjectByName(IN PUNICODE_STRING ObjectName,IN ULONG Attributes,IN PACCESS_STATE PassedAccessState OPTIONAL,IN ACCESS_MASK DesiredAccess OPTIONAL,IN POBJECT_TYPE ObjectType,IN

總頁數: 61357 1 .... 4373 4374 4375 4376 4377 .... 61357 Go to: 前往

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.