Patching Policy for x64-Based Systems
Patching Policy for x64-Based Systems
Changes in policy that are related to patching the kernel for the x64-based versions of Microsoft Windows Server 2003 and Microsoft Windows XP Professional x64 Edition operating systems
Updated: July 25, 2008
The x64-based versions of Microsoft Windows Server 2003 , Windows XP Professional x64 Edition, and later versions of Windows for x64-based systems do not allow the kernel to be patched except through authorized Microsoft-originated hot patches. (In this article, "x64" refers to the 64-bit architecture that is used in AMD64 and Intel Extended Memory 64 Technology systems.) Kernel-mode drivers that extend or replace kernel services through undocumented means (such as hooking the system service tables) can interfere with other software and affect the stability of the operating system. For x86-based systems, Microsoft discourages such practices but does not prevent them programmatically because doing so would break compatibility for a significant amount of released software. A similar base of released software does not yet exist for x64-based systems, so it is possible to add this level of protection to the kernel with less impact on compatibility.
Many system structures are protected on x64-based systems, including the system service dispatch tables, the interrupt descriptor table (IDT), and the global descriptor table (GDT). The operating system also does not allow third-party software to allocate memory "on the side" and use it as a kernel stack. If the operating system detects one of these modifications or any other unauthorized patch, it will generate a bug check and shut down the system.
For compatibility with Windows for x64-based systems, drivers must avoid the following practices:
• |
Modifying system service tables, for example, by hooking KeServiceDescriptorTable |
• |
Modifying the interrupt descriptor table (IDT) |
• |
Modifying the global descriptor table (GDT) |
• |
Using kernel stacks that are not allocated by the kernel |
• |
Patching any part of the kernel (detected only on AMD64-based systems) |
Drivers for other platforms should avoid these practices, to help ensure stability and reliability of the operating system and a better experience for customers.
If your driver must perform a task that you think cannot be accomplished without patching the kernel, then contact KPPinput@Microsoft.com for help in finding a documented and supported alternative. The white paper that explains the criteria we are using to help evaluate and prioritize the types of APIs that will be developed and when they will be delivered can be found here (Kernel Patch Protection Criteria Evaluation Document).
See Also:
• |
원문 : http://www.microsoft.com/whdc/driver/kernel/64bitPatching.mspx
Dependency Walker
C Run-Time Library 의 종류
컴파일 옵션에 따른 Run-Time Library 연결
컴파일 옵션
연결되는 라이브러리
/ML (VC ++ .NET 2003 및 이전 버전)
LIBC.LIB, LIBCP.LIB
/MLd (VC ++ .NET 2003 및 이전 버전)
LIBCD.LIB, LIBCPD.LIB
/mt
LIBCMT.LIB, LIBCPMT.LIB
/MTd
LIBCMTD.LIB, LIBCPMTD.LIB
/md
MSVCRT.LIB MSVCPRT.LIB
/MDd
MSVCRTD.LIB, MSVCPRTD.LIB
Run-Time Library 종류
C Run-Time Library (without iostream)
Characteristics
Option
Defined
LIBC.LIB
Single threaded, static link
/ML
LIBCMT.LIB
Multithreaded, static link
/MT
_MT
MSVCRT.LIB
Multithreaded, dynamic link (import library for MSVCRT.DLL)
/MD
_MT, _DLL
Standard C++ Library
Characteristics
Option
Defined
LIBCP.LIB
Single threaded, static link
/ML
LIBCPMT.LIB
Multithreaded, static link
/MT
_MT
MSVCPRT.LIB
Multithreaded, dynamic link (import library for MSVCRT.DLL)
/MD
_MT, _DLL
Old Iostream Library
Characteristics
Option
Defined
LIBCI.LIB
Single threaded, static link
/ML
LIBCIMT.LIB
Multithreaded, static link
/MT
_MT
MSVCIRT.LIB
Multithreaded, dynamic link (import library for MSVCIRT.DLL)
/MD
_MT, _DLL
참조 URL :
http://msdn.microsoft.com/en-us/library/aa272081(VS.60).aspx
http://support.microsoft.com/kb/154753
Windows Controls ( User Interface )
Windows Controls
A control is a child window that an application uses in conjunction with another window to enable user interaction. Controls are most often used within dialog boxes, but they can also be used in other windows. Controls within dialog boxes provide the user with a way to type text, choose options, and initiate actions. Controls in other windows provide a variety of services, such as letting the user choose commands, view status, and view and edit text.
The common controls overview documentation describes the common controls delivered in Microsoft Windows and the programming elements used to create and manipulate them.
The following table lists the Windows controls.
Control |
Description |
A window that displays an Audio-Video Interleaved (AVI) clip. | |
Notifies the parent window when the user selects the control. | |
A combination of a list box and an edit control, enabling the user to select or add items. | |
An extension of the combo box control that provides native support for item images. | |
A simple and intuitive interface through which to exchange date and time information with a user. | |
A type of list box that enables the user to drag items from one position to another. | |
A window within the user can view and edit text. | |
A scroll bar with a more customizable appearance than standard scroll bars. | |
A window that is usually positioned above columns of text or numbers. It contains a title for each column, and it can be divided into parts. | |
A window that enables the user to enter a combination of keystrokes to be used as a hot key. | |
A collection of images of the same size, each of which can be referred to by its index. | |
A window in which the user can enter an Internet Protocol (IP) address in an easily understood format. | |
A simple list from which the user can select one or more items. | |
A list box that provides several ways to arrange and display the items. | |
A calendar that enables the user to select a date or dates. | |
A set of arrow buttons that enable the contents of a control window to be scrolled. | |
An animated control that indicates the progress of a lengthy operation. | |
A dialog box that enables the user to view and edit the properties of an item. Pages may be viewed as tabs, or in succession as a wizard. | |
A container for child windows. An application assigns child windows, which are often other controls, to a rebar control band. | |
A window in which the user can view and edit text with character and paragraph formatting. It can also contain embedded COM objects. | |
A control that enables the user to choose the direction and distance to scroll information in a related window. | |
Non-interactive text, including labels for other controls. | |
A horizontal window at the bottom of a parent window in which an application can display various kinds of status information. | |
A hypertext link. | |
A selectable page, analogous to a divider in a notebook. By using a tab control, an application can define multiple pages for the same area of a window or dialog box. | |
A more powerful alternative to simple message boxes, incorporating elements such as custom buttons, radio buttons, hyperlinks, and progress bars. | |
A window that contains one or more buttons and possibly other controls. | |
A message that appears automatically when the mouse pointer hovers over a tool. | |
A slider with optional tick marks, used to set a value within a range. | |
A hierarchical list of items, such as the headings in a document or the files and directories on a disk. | |
A pair of arrow buttons that the user can click to increment or decrement a value, such as a scroll position or a number displayed in a companion control. |