The _ OBJECT_INFORMATION_CLASS structure in the kernel, object. getclass

Source: Internet
Author: User

The _ OBJECT_INFORMATION_CLASS structure in the kernel, object. getclass
In fact, there are five enumeration types.

typedef enum _OBJECT_INFORMATION_CLASS {    ObjectBasicInformation,    ObjectNameInformation,    ObjectTypeInformation,    ObjectAllInformation,    ObjectDataInformation} OBJECT_INFORMATION_CLASS, *POBJECT_INFORMATION_CLASS;
However, there are only two items in microsoft documents.
OBJECT_INFORMATION_CLASSThe OBJECT_INFORMATION_CLASS enumeration type represents the type of information to supply about an object.typedef enum _OBJECT_INFORMATION_CLASS {  ObjectBasicInformation=0,  ObjectTypeInformation=2,} OBJECT_INFORMATION_CLASS;ValuesObjectBasicInformation A PUBLIC_OBJECT_BASIC_INFORMATION structure is supplied. ObjectTypeInformation A PUBLIC_OBJECT_TYPE_INFORMATION structure is supplied. RequirementsVersions: Available starting with Microsoft Windows 2000.Headers: Defined in Ntifs.h. Include Ntifs.h or Fltkernel.h.
The actual structure of ObjectBasicInformation is as follows:
typedef struct _OBJECT_BASIC_INFORMATION {  ULONG                   Attributes;  ACCESS_MASK             DesiredAccess;  ULONG                   HandleCount;  ULONG                   ReferenceCount;  ULONG                   PagedPoolUsage;  ULONG                   NonPagedPoolUsage;  ULONG                   Reserved[3];  ULONG                   NameInformationLength;  ULONG                   TypeInformationLength;  ULONG                   SecurityDescriptorLength;  LARGE_INTEGER           CreationTime;} OBJECT_BASIC_INFORMATION, *POBJECT_BASIC_INFORMATION;


In the same way, some official documents do not declare this structure. The following are official documents:
typedef struct _PUBLIC_OBJECT_BASIC_INFORMATION {ULONG Attributes;ACCESS_MASK GrantedAccess;ULONG HandleCount;ULONG PointerCount;ULONG Reserved[10];} PUBLIC_OBJECT_BASIC_INFORMATION; PPUBLIC_OBJECT_BASIC_INFORMATION

One LARGE_INTEGER occupies two ULONG segments.
What is the basic idea of operating system microkernel structure design?

The micro-kernel structure is a new structure that reflects the new idea of the operating system structure design. The micro-kernel design aims to make the operating system kernel as small as possible, all other operating system services are generally completed at the non-core user level. In other words, the original operating system will do a lot of things, and after the system is started, it will provide a variety of services (some of these services are not needed daily), operating systems using a micro-kernel structure, the kernel is short, lean, and only provides the most basic and essential services. functions other than the kernel can be built on the kernel in the form of servers, allowing you to easily design, develop, and integrate your new system; to add and modify a service, you do not need to stop the system or reboot the kernel. It is easy to install and debug a new system.

How does Windows NT use the kernel structure?

Basic structure and features of Windows NT kernel

Although most people work, study, and entertain on Windows every day, many people still do not know about its kernel structure. On the one hand, because the kernel source code is not open source, on the other hand, it is due to the shortage of relevant information. I spent a semester studying and exploring the NT kernel in my sophomore year. Although I dare not say that I have a deep understanding of it, at least its basic structure is clear. However, after all, I have only limited learning skills, and there will certainly be some imperfections. Please kindly advise me.

Currently, all mainstream Microsoft operating systems are based on the NT kernel, such:
Windows 2000/XP/Server 2003 (based on NT5)
Windows Vista (based on NT6)

Windows 7 (based on NT6.1, I have never installed Windows 7, but it is said to be like this)

Although many people blame Windows for many problems in some aspects, this is not a kernel error. In general, NT is a mature, stable, and advanced kernel, I think the NT kernel will remain the mainstream for a long period of time in the future, and there will be no major changes (of course, local upgrades are completely unquestionable)
In the early days, Microsoft wanted to make NT a pure microkernel structure. If you are not clear about the differences between the microkernel and the single kernel, you can search for it online. Later, in order to improve the performance of the graphic subsystem and avoid switching between a large number of kernel States and user States, Microsoft moved it into the kernel, make it a part of the kernel (similar to the later DirectX technology ). It can be seen that NT is not a complete microkernel, and it also has some features of a single kernel.

The NT kernel has the following features (from untitled ented Windows NT)

Portability (Portability)
As you know, Windows NT can run on multiple platforms, such as Intel, MIPS, Power PC, and DEC Alpha. Many vendors have contributed to the portability of Windows NT. The most important factor may be the language used for its implementation. Windows NT is mostly written in C language, and some use C ++. Platform-related assembly languages are used only when necessary. The Windows NT team also isolates hardware-related parts of the operating system from other parts and separately places them into HAL. DLL. In this way, the code of hardware-independent parts of Windows NT can be written in advanced languages such as C, and therefore can be easily transplanted to various platforms.

Extensibility)
Windows NT has high scalability, but its scalability is rarely explored due to lack of documentation. The subsystem bears the brunt of the List of undisclosed features. The subsystem provides multiple operating system interfaces in the operating system. You only need to add new subsystem programs to expand new OS interfaces for Windows NT. However, Microsoft has been focusing on the public addition of new subsystem processes.

Windows NT kernel is highly scalable because it can be dynamically loaded as a driver. For Windows NT, Microsoft provides enough documents to write hardware device drivers, such as hard drive, Nic drive, and tape drive. In Windows NT, you can also write drivers that do not control the device. Even file systems are loaded as drivers.
Another example of Windows NT scalability is the implementation of system call interfaces. To modify operating system behaviors, developers generally need to hook up or add system calls. The development team of Windows NT has a good system call interface to easily hook up and add system calls. However, Microsoft still does not disclose these mechanisms.

Compatibility (Compatibility)
For a long time, downward compatibility has been a major feature of Intel processors and Microsoft operating systems, and is also the key to the success of these two giants. Windows NT must be able to run DOS, Win16, and OS/2 programs. Compatibility is enabled for Windows NT... the remaining full text>

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

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.