Difference between revisions of "Gopher"

From ReactOS Wiki
Jump to: navigation, search
(PipProcessRestartPhase2 =)
(PipCallDriverAddDeviceQueryRoutine =)
Line 149: Line 149:
 
==== PipCallDriverAddDevice ====
 
==== PipCallDriverAddDevice ====
  
===== PipCallDriverAddDeviceQueryRoutine ======
+
===== PipCallDriverAddDeviceQueryRoutine =====
  
 
==== PipProcessStartPhase1 ====
 
==== PipProcessStartPhase1 ====

Revision as of 15:13, 12 October 2008

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

PiInitCacheGroupInformation

PpInitSystem

PiInitPhase0

PiInitPhase1

Loading Boot Drivers

IopInitializeBootDrivers

PpInitGetGroupOrderIndex

PipGetDriverTagPriority

PipLookupGroupName

PipCheckDependencies

PipAddDevicesToBootDriver

PipAddDevicesToBootDriverWorker

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

Device Node State

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

Registration

PiFindDevInstMatch

PiProcessDriverInstance

PiRearrangeDeviceInstances

Requests

PipRequestDeviceAction

DEVICE_REQUEST_TYPE

PI_DEVICE_REQUEST

Processing Device Nodes

PipProcessDevNodeTree

PipAssertDevnodesInConsistentState

PiProcessNewDeviceNode

PiBuildDeviceNodeInstancePath
PiCreateDeviceInstanceKey
PiQueryResourceRequirements
PnpQueryBusInformation
PiQueryAndAllocateBootResources
PipMakeGloballyUniqueId
PnpSaveDeviceCapabilities

PipCallDriverAddDevice

PipCallDriverAddDeviceQueryRoutine

PipProcessStartPhase1

PipProcessStartPhase2

PipProcessStartPhase3

PipEnumerateDevice

PipEnumerateCompleted

PipProcessRestartPhase1

PipProcessRestartPhase2

Firmware Mapper

User-Initiated Driver Loading

Helper Routines

Registry String Management

PnpFreeUnicodeStringList

PnpRegMultiSzToUnicodeStrings

PnpRegSzToString

Unicode String Management

IopAllocateUnicodeString

PipConcatenateUnicodeStrings

=== IopFreeUnicodeString

PnP IRP Wrappers

PnpIrpQueryID

PpIrpQueryDeviceCapabilities

PpIrpQueryResourceRequirements

PpIrpQueryPnpBusInformation

PnpQueryDeviceText

Resource List Management

PnpDetermineResourceListSize

Hardware ID Validation

PnpFixupId

Hardware Registry Keys

PipOpenServiceEnumKeys

PipServiceInstanceToDeviceInstance

PipApplyFunctionToServiceInstances

PipApplyFunctionToSubKeys

I/O Manager Backend

IopSynchronousCall

IopQueryDeviceResources

IopGetDriverNameFromKeyNode

IopReferenceDriverObjectByName

IopIsLegacyDriver

IopInitializeBuiltinDriver

IopInitializeAttributesAndCreateObject

IopPrepareDriverLoading

IopReadyDeviceObjects

IopDriverLoadingFailed