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
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