Gopher

From ReactOS Wiki
Revision as of 20:08, 22 August 2008 by Alex_Ionescu (talk | contribs)
Jump to: navigation, search

Gopher is the code name for a new PnP layer for ReactOS 0.4.0

This page contains documentation on the implementation of Gopher as based on the Windows 2003 SP1 PnP Manager

Contents

Gopher Startup

IopInitializePlugPlayServices

PpInitSystem

PiInitPhase0

PiInitPhase1

Loading Boot Drivers

PiInitCacheGroupInformation

PpInitGetGroupOrderIndex

PipGetDriverTagPriority

Loading System Drivers

Registry Support

CmpFindTagIndex

CmpAddDriverToList

CmpIsLoadType

CmpDoSort

CmpSortDriverList

CmpOrderGroup

CmpResolveDriverDependencies

Device Nodes

Device Node Management Functions

PipAllocateDeviceNode

PpDevNodeInsertIntoTree

PpDevNodeRemoveFromTree

PpDevNodeLockTree

PpDevNodeUnlockTree

PpDevNodeAssertLockLevel

IopDestroyDeviceNode

Device Node Problems

PipSetDevNodeProblem

Instance Paths

Creation and Components

Building and Querying IDs

PnpQueryId
PnpQueryDeviceId

Managing the Instance Path

Buffer Management

PnpAllocateDeviceInstancePath
PnpFreeDeviceInstancePath

Device Object to Device Instance Mapping

PnpDeviceObjectToDeviceInstance
PnpDeviceObjectFromDeviceInstance
PnpMapDeviceObjectToDeviceInstance
AVL Mapping Tree
PpInitializeDeviceReferenceTable
PnpCompareInstancePath
PnpAllocateGenericTableEntry
PnpFreeGenericTableEntry

Processing New Device Nodes

PiProcessNewDeviceNode

PiBuildDeviceNodeInstancePath

PiCreateDeviceInstanceKey

PiQueryResourceRequirements

PnpQueryBusInformation

PiQueryAndAllocateBootResources

PipMakeGloballyUniqueId

PnpSaveDeviceCapabilities

Firmware Mapper

User-Initiated Driver Loading

Helper Routines

Registry String Management

PnpFreeUnicodeStringList

PnpRegMultiSzToUnicodeStrings

PnpRegSzToString

PnP IRP Wrappers

PnpIrpQueryID

PpIrpQueryDeviceCapabilities

PpIrpQueryResourceRequirements

PpIrpQueryPnpBusInformation

PnpQueryDeviceText

Resource List Management

PnpDetermineResourceListSize

Hardware ID Validation

PnpFixupId

I/O Manager Backend

IopSynchronousCall

IopQueryDeviceResources