Share to: share facebook share twitter share wa share telegram print page

Object Manager (Windows)

Object Manager in Windows, categorized hierarchically using namespaces

Object Manager (internally called Ob) is a subsystem implemented as part of the Windows Executive which manages Windows resources. Resources, which are surfaced as logical objects, each reside in a namespace for categorization. Resources can be physical devices, files or folders on volumes, Registry entries or even running processes. All objects representing resources have an Object Type property and other metadata about the resource. Object Manager is a shared resource, and all subsystems that deal with the resources have to pass through the Object Manager.

Architecture

The Object Manager in the architecture of Windows NT

Object Manager is the centralized resource broker in the Windows NT line of operating systems, which keeps track of the resources allocated to processes. It is resource-agnostic and can manage any type of resource, including device and file handles. All resources are represented as objects, each belonging to a logical namespace for categorization and having a type that represents the type of the resource, which exposes the capabilities and functionalities via properties. An object is kept available until all processes are done with it; Object Manager maintains the record of which objects are currently in use via reference counting, as well as the ownership information. Any system call that changes the state of resource allocation to processes goes via the Object Manager.

Objects can either be Kernel objects or Executive objects. Kernel objects represent primitive resources such as physical devices, or services such as synchronization, which are required to implement any other type of OS service. Kernel objects are not exposed to user mode code, but are restricted to kernel code. Applications and services running outside the kernel use Executive objects, which are exposed by the Windows Executive, along with its components such as the memory manager, scheduler and I/O subsystem. Executive objects encapsulate one or more kernel objects and expose not only the kernel and kernel-mediated resources, but also an expanded set of services that the kernel does.[clarification needed] Applications themselves can wrap one or more Executive objects and surface objects[definition needed] that offer certain services. Executive objects are also used by the environment subsystems (such as the Win32 subsystem, the OS/2 subsystem, the POSIX subsystem, etc.) to implement the functionality of the respective environments.

Whenever an object is created or opened, a reference to the instance, known as a handle, is created. The Object Manager indexes objects by both their names and handles. Referencing objects by handles is faster since it bypasses name translation. Handles are associated with processes by making an entry in the process's Handle table, which lists the handles it owns, and can be transferred between processes. A process must own a handle to an object to use it, and can own up to 16,000,000 handles at one time. During creation, a process gains handles to a default set of objects. There are different types of handles, such as file handles, event handles, and process handles, which identify the type of target objects but do not distinguish the operations that can be performed through them. This consistency ensures uniform handling of various object types programmatically. Handle creation and resolution of objects from handles are exclusively managed by the Object Manager, ensuring that no resource usage goes unnoticed.

The types of Executive objects exposed by Windows NT are:

Type Description System call to get handle
Directory A container holds other kernel objects. Multiple levels of nested directories organize all kernel objects into a single tree. NtCreateDirectoryObject
NtOpenDirectoryObject
Process A collection of executable threads along with virtual addressing and control information. NtCreateProcess
NtOpenProcess
Thread An entity containing code in execution, inside a process. NtCreateThread
NtOpenThread
Job A collection of processes. NtCreateJobObject
NtOpenJobObject
File An open file or an I/O device. NtCreateFile
NtOpenFile
Section A region of memory optionally backed by a file or the page file. NtCreateSection
NtOpenSection
Access token The access rights for an object. NtCreateToken
NtDuplicateToken
NtOpenProcessToken
NtOpenThreadToken
Event An object which encapsulates some information, to be used for notifying processes of something. NtCreateEvent
NtOpenEvent
Semaphore/Mutex Objects which serialize access to other resources. NtCreateSemaphore
NtOpenSemaphore
Timer An objects which notifies processes at fixed intervals. NtCreateTimer
NtOpenTimer
Key A registry key. NtCreateKey
NtOpenKey
Desktop A logical display surface to contain GUI elements. None
Clipboard A temporary repository for other objects. None
WindowStation An object containing a group of Desktop objects, one Clipboard and other user objects. None
Symbolic link A reference to another object, via which the referred object can be used. NtCreateSymbolicLinkObject
NtOpenSymbolicLinkObject

Object structure

Each object managed by the Object Manager has a header and a body; the header contains state information used by Object Manager, whereas the body contains the object-specific data and the services it exposes. An object header contains certain data, exposed as Properties, such as Object Name (which identifies the object), Object Directory (the category the object belongs to), Security Descriptors (the access rights for an object), Quota Charges (the resource usage information for the object), Open handle count (the number of times a handle, an identifier to the object, has been opened), Open handle list (the list of processes which has a live reference to the object), its Reference count (the number of live references to the object), and the Type (an object that identifies the structure of the object body) of the object.

A Type object contains properties unique to the type of the object as well as static methods that implement the services offered by the object. Objects managed by Object Manager must at least provide a predefined set of services: Close (which closes a handle to an object), Duplicate (create another handle to the object with which another process can gain shared access to the object), Query object (gather information about its attributes and properties), Query security (get the security descriptor of the object), Set security (change the security access), and Wait (to synchronize with one or more objects via certain events). Type objects also have some common attributes, including the type name, whether they are to be allocated in non-paged memory, access rights, and synchronization information. All instances of the same type share the same type object, and the type object is instantiated only once. A new object type can be created by endowing an object with Properties to expose its state and methods to expose the services it offers.

Object name is used to give a descriptive identity to an object, to aid in object lookup. Object Manager maintains the list of names already assigned to objects being managed, and maps the names to the instances. Since most object accesses occur via handles, it is not always necessary to look up the name to resolve into the object reference. Lookup is only performed when an object is created (to make sure the new object has a unique name), or a process accesses an object by its name explicitly. Object directories are used to categorize them according to the types. Predefined directories include \?? (device names), \BaseNamedObjects (Mutexes, events, semaphores, waitable timers, and section objects), \Callback (callback functions), \Device, \Driver, \FileSystem, \KnownDlls, \Nls (language tables), \ObjectTypes (type objects), \RPC Control (RPC ports), \Security (security subsystem objects), and \Windows (windowing subsystem objects). Objects also belong to a Namespace. Each user session is assigned a different namespace. Objects shared between all sessions are in the GLOBAL namespace, and session-specific objects are in the specific session namespaces

OBJECT_ATTRIBUTES structure:

typedef struct _OBJECT_ATTRIBUTES {
  ULONG Length;
  HANDLE RootDirectory;
  PUNICODE_STRING ObjectName;
  ULONG Attributes;
  PSECURITY_DESCRIPTOR SecurityDescriptor;
  PSECURITY_QUALITY_OF_SERVICE SecurityQualityOfService;
} OBJECT_ATTRIBUTES *POBJECT_ATTRIBUTES;

The Attributes member can be zero, or a combination of the following flags:

OBJ_INHERIT
OBJ_PERMANENT
OBJ_EXCLUSIVE
OBJ_CASE_INSENSITIVE
OBJ_OPENIF
OBJ_OPENLINK
OBJ_KERNEL_HANDLE

Usage

Object Manager paths are available to many Windows API file functions, although Win32 names like \\?\ and \\.\ for the local namespaces suffice for most uses.[1] Using the former in Win32 user-mode functions translates directly to \??, but using \?? is still different as this NT form does not turn off pathname expansion.[2]

Tools that serve as explorers in the Object Manager namespaces are available. These include the 32-bit WinObj from Sysinternals[3] and the 64-bit WinObjEx64.[4]

See also

References

  1. ^ "Naming Files, Paths, and Namespaces - Win32 apps". docs.microsoft.com.
  2. ^ "winapi - Is there a difference between \??\ and \\?\ paths?". Stack Overflow.
  3. ^ "WinObj - Windows Sysinternals". docs.microsoft.com.
  4. ^ "hfiref0x/WinObjEx64: Windows Object Explorer 64-bit". GitHub. 20 February 2020.

Read other articles:

Bloomberg L.P. v. Board of Governors of the Federal Reserve SystemCourtUnited States District Court for the Southern District of New YorkFull case nameBloomberg L.P., Plaintiff, v. Board of Governors of the Federal Reserve System, Defendant. DecidedAugust 24, 2009Docket nos.1:08-cv-09595Court membershipJudge(s) sittingLoretta A. Preska Bloomberg L.P. v. Board of Governors of the Federal Reserve System, 1:08-cv-09595,[1][2] was a lawsuit by Bloomberg L.P. against the Board of G...

Proces Galileusza przed trybunałem inkwizycji. Herezja (gr. αἵρεσις hairesis – wybierać[1] , łac. haeresis) – doktryna religijna odrzucana przez władze kościelne lub religijne jako błędna[2]. Koncepcja taka ma zastosowanie m.in. w buddyzmie, chrześcijaństwie, islamie, judaizmie oraz hinduizmie[3]. „Śmierć Cranmera”, z kopii Foxe's Book of Martyrs z 1887 r. W klasycznej grece poprzez słowo „αἵρεσις” rozumiano odrębną szkołę lub partię, w epoce...

Administración militar en FranciaMilitärverwaltung in Frankreich Territorio bajo administración militar alemana 1940-1944BanderaEscudo Capital ParísEntidad Territorio bajo administración militar alemanaIdioma oficial Francés y AlemánMoneda Marco alemánPeríodo histórico Segunda Guerra Mundial • 22 de juniode 1940 Fin de la Batalla de Francia • Otoñode 1944 Liberación de FranciaForma de gobierno Administración militarGobernador militar• 1940-1942• 1942-1...

Artikel ini sebatang kara, artinya tidak ada artikel lain yang memiliki pranala balik ke halaman ini.Bantulah menambah pranala ke artikel ini dari artikel yang berhubungan atau coba peralatan pencari pranala.Tag ini diberikan pada Oktober 2022. Hinokitiol[1] Nama Nama IUPAC 2-Hydroxy-6-propan-2-ylcyclohepta-2,4,6-trien-1-one Nama lain β-Thujaplicin; 4-Isopropyltropolone Penanda Nomor CAS 499-44-5 Y Model 3D (JSmol) Gambar interaktif 3DMet {{{3DMet}}} ChEBI CHEBI:10447 N ChE...

Artikel ini bukan mengenai The Road to Singapore. Road to SingaporeSutradara Victor Schertzinger Produser Harlan Thompson Ditulis oleh Frank Butler Don Hartman Skenario Frank Butler Don Hartman CeritaHarry HerveyPemeran Bing Crosby Dorothy Lamour Bob Hope SinematograferWilliam C. MellorPenyuntingPaul WeatherwaxPerusahaanproduksiParamount PicturesDistributorParamount PicturesTanggal rilis 14 Maret 1940 (1940-03-14) (Amerika Serikat) Durasi85 menitNegara Amerika Serikat Bahasa Inggris ...

County in West Virginia, United States County in West VirginiaRitchie CountyCountyRitchie County Courthouse in HarrisvilleLocation within the U.S. state of West VirginiaWest Virginia's location within the U.S.Coordinates: 39°11′N 81°04′W / 39.18°N 81.07°W / 39.18; -81.07Country United StatesState West VirginiaFoundedFebruary 18, 1843Named forThomas RitchieSeatHarrisvilleLargest townHarrisvilleArea • Total454 sq mi (1,180 km2...

Gyakuten Sekai no Denchi ShōjoVisual utama逆転世界ノ電池少女(Gyakuten Sekai no Denchi Shōjo)GenreMecha Seri animeSutradaraMasaomi AndōSkenarioMakoto UezuMusikYūsuke ShiratoStudioLerchePelisensiFunimation SA/SEA Muse CommunicationSaluranasliAT-X, Tokyo MX, ytv, BS11Tayang 11 Oktober 2021 – 27 Desember 2021Episode12 MangaIlustratorLeft HandPenerbitKadokawa ShotenMajalahComic NewtypeDemografiSeinenTerbit12 Oktober 2021 – sekarang  Portal anime dan manga Gyakuten Sekai n...

最優秀的(英语:The Most Excellent) 蒙受恩典的阁下(英语:His Grace)貝里克公爵Duke of Berwick弗朗西斯柯·悠維(Francisco Jover)繪製,現藏於普拉多博物館个人资料出生(1670-08-21)1670年8月21日 法蘭西王國奧弗涅穆蘭逝世1734年6月12日(1734歲—06—12)(63歲) 神聖羅馬帝國巴登藩侯國菲利普斯堡配偶昂諾拉·伯克(英语:Honora de Burgh)安妮·巴克利 (Anne Bulkeley)父母詹姆斯二...

Vietnamese action film FuriesFilm poster for theatrical release (Vietnam)Directed byVeronica NgoScreenplay by Nha Uyen Ly Nguyen Veronica Ngo Nguyen Truong Starring Veronica Ngo Đồng Ánh Quỳnh Tóc Tiên Rima Thanh Vy Thuận Nguyễn Song Luân [vi] ProductioncompanyStudio 68Distributed byCJ Entertainment, NetflixRelease date 23 December 2022 (2022-12-23) (Vietnam) Running time109 minutesCountryVietnamLanguageVietnameseBox officeVND 22.9 billio...

Election to the 58th United Kingdom House of Commons 2019 United Kingdom general election ← 2017 12 December 2019 Next → ← outgoing memberselected members →All 650 seats in the House of Commons326[n 1] seats needed for a majorityOpinion pollsRegistered47,568,611Turnout67.3% ( 1.5 pp)[2]   First party Second party   Leader Boris Johnson Jeremy Corbyn Party Conservative Labour Leader since 23 July 2019 12 September ...

Academic journalProteins: Structure, Function, and BioinformaticsDisciplineProtein biochemistryLanguageEnglishEdited byNikolay DokholyanPublication detailsHistory1986-presentPublisherJohn Wiley & SonsFrequencyMonthlyImpact factor3.756 (2020)Standard abbreviationsISO 4 (alt) · Bluebook (alt1 · alt2)NLM (alt) · MathSciNet (alt )ISO 4ProteinsIndexingCODEN (alt) · JSTOR (alt) · LCCN (alt)MIAR · NLM (alt)&...

Lembah Jiu (bahasa Rumania: Valea Jiului) adalah region di Rumania barat daya, terletak di lembah sungai Jiu antara Pegunungan Retezat dengan Pegunungan Parâng. Lembah Jiu telah terindustrialisasi, dan aktivitas utama di wilayah ini adalah penambangan batu bara. Kota penting di Lembah Jiu Aninoasa Baniţa Lupeni Petrila Petroşani Uricani Vulcan Pranala luar Jiu Valley Portal Diarsipkan 2010-02-11 di Wayback Machine. - Romania's principal coalmining region and a gateway to the Retezat Na...

For the administrative district, see Neftchala Rayon. 39°21′31″N 49°14′49″E / 39.35861°N 49.24694°E / 39.35861; 49.24694 City and Municipality in Neftchala, AzerbaijanNeftçalaCity and MunicipalityMonument to Turkish martyrsNeftçalaCoordinates: 39°21′31″N 49°14′49″E / 39.35861°N 49.24694°E / 39.35861; 49.24694Country AzerbaijanDistrictNeftchalaEstablished1959Elevation−26 m (−85 ft)Population (2010...

Robin GibbRobin di Dubai, Uni Emirat Arab, Maret 2008Informasi latar belakangNama lahirRobin Hugh GibbLahirDouglas, Isle of ManAsalDibesarkan di:Chorlton-cum-Hardy, Manchester, InggrisPindah ke:Brisbane, AustraliaMeninggal20 Mei 2012(2012-05-20) (umur 62)London, InggrisGenrePop, rock, diskoPekerjaanPenyanyi-penulis laguInstrumenvokalis, piano, violinTahun aktif1958–2012LabelUniversal, BMG Music PublishingArtis terkaitBee GeesSitus webOfficial website Robin Hugh Gibb, CBE (22 Desember 1...

This article may require cleanup to meet Wikipedia's quality standards. The specific problem is: Grammar, formatting, context, and meaning. Please help improve this article if you can. (January 2017) (Learn how and when to remove this template message) Upazila in Mymensingh, BangladeshTrishal ত্রিশালUpazilaView Of Trishal Municipality (pouroshobha) VobonCoordinates: 24°34.5′N 90°23.5′E / 24.5750°N 90.3917°E / 24.5750; 90.3917CountryBangladeshDivis...

The Sharp Family Tourism and Education Center is a posthumous addition to Frank Lloyd Wright's Child of the Sun collection at Florida Southern College in Lakeland, Florida.[1] Wright oversaw the construction of twelve buildings on Florida Southern's campus between 1938 and 1958. He also designed a Usonian house in 1939 meant to be used for faculty housing.[2] Wright produced plans for 14 of the homes to be built on the college campus, but the plan was never carried through. ...

This article is about the video game series. For the first game in the series, see Jazz Jackrabbit (1994 video game). For the third game in the series, see Jazz Jackrabbit (2002 video game). Video game series Jazz Jackrabbit, the eponymous character of the series Jazz Jackrabbit is a series of platform games featuring the eponymous character, Jazz Jackrabbit, a green anthropomorphic hare who fights with his nemesis, Devan Shell, in a science fiction parody of the fable The Tortoise and the Ha...

حزب الطليعة الأخلاقية والاجتماعية تعديل مصدري - تعديل   يفتقر محتوى هذه المقالة إلى الاستشهاد بمصادر. فضلاً، ساهم في تطوير هذه المقالة من خلال إضافة مصادر موثوق بها. أي معلومات غير موثقة يمكن التشكيك بها وإزالتها. (أغسطس 2021) هذه المقالة يتيمة إذ تصل إليها مقالات أخرى قليل...

Book series Berona's WarCover of Berona's Hundred Year WarAuthorAnthony Coffey and Jesse LabbéPublisherArchaia Studios Press Berona's War is a book series created by Anthony Coffey and Jesse Labbé and published by Archaia Studios Press.[1][2] Released books include Berona's Hundred Year War, Berona's War: Field Guide & Berona's War: Cabbalu Tales - Vol. 1: Without Perfection.[3] Additional writers include Bret Kenyon and Opie Cooper. Critics noted Berona's War: F...

Artikel ini perlu diwikifikasi agar memenuhi standar kualitas Wikipedia. Anda dapat memberikan bantuan berupa penambahan pranala dalam, atau dengan merapikan tata letak dari artikel ini. Untuk keterangan lebih lanjut, klik [tampil] di bagian kanan. Mengganti markah HTML dengan markah wiki bila dimungkinkan. Tambahkan pranala wiki. Bila dirasa perlu, buatlah pautan ke artikel wiki lainnya dengan cara menambahkan [[ dan ]] pada kata yang bersangkutan (lihat WP:LINK untuk keterangan lebih lanjut...

Kembali kehalaman sebelumnya