Difference between revisions of "Gopher"
Alex_Ionescu (talk | contribs) |
Alex Ionescu (talk | contribs) |
||
Line 6: | Line 6: | ||
== IopInitializePlugPlayServices == | == IopInitializePlugPlayServices == | ||
+ | |||
+ | === PiInitCacheGroupInformation === | ||
== PpInitSystem == | == PpInitSystem == | ||
Line 15: | Line 17: | ||
= Loading Boot Drivers = | = Loading Boot Drivers = | ||
− | == | + | == IopInitializeBootDrivers == |
− | == PpInitGetGroupOrderIndex == | + | === PpInitGetGroupOrderIndex === |
− | == PipGetDriverTagPriority == | + | === PipGetDriverTagPriority === |
+ | |||
+ | === PipLookupGroupName === | ||
+ | |||
+ | === PipCheckDependencies === | ||
+ | |||
+ | === PipAddDevicesToBootDriver === | ||
+ | |||
+ | ==== PipAddDevicesToBootDriverWorker ==== | ||
= Loading System Drivers = | = Loading System Drivers = | ||
Line 60: | Line 70: | ||
=== PipSetDevNodeProblem === | === PipSetDevNodeProblem === | ||
+ | |||
+ | == Device Node State == | ||
== Instance Paths == | == Instance Paths == | ||
Line 97: | Line 109: | ||
====== PnpFreeGenericTableEntry ====== | ====== PnpFreeGenericTableEntry ====== | ||
− | == | + | == Registration == |
+ | |||
+ | === PiFindDevInstMatch === | ||
+ | |||
+ | === PiProcessDriverInstance === | ||
− | === | + | === PiRearrangeDeviceInstances === |
− | == | + | == Requests == |
− | === Processing | + | === PipRequestDeviceAction === |
+ | |||
+ | ==== DEVICE_REQUEST_TYPE ==== | ||
+ | |||
+ | ==== PI_DEVICE_REQUEST ==== | ||
+ | |||
+ | == Processing Device Nodes == | ||
+ | |||
+ | === PipProcessDevNodeTree === | ||
+ | |||
+ | ==== PipAssertDevnodesInConsistentState ==== | ||
==== PiProcessNewDeviceNode ==== | ==== PiProcessNewDeviceNode ==== | ||
− | ==== PiBuildDeviceNodeInstancePath = | + | ===== PiBuildDeviceNodeInstancePath ===== |
− | |||
− | |||
− | ==== | + | ===== PiCreateDeviceInstanceKey ===== |
− | ==== | + | ===== PiQueryResourceRequirements ===== |
− | ==== | + | ===== PnpQueryBusInformation ===== |
− | ==== | + | ===== PiQueryAndAllocateBootResources ===== |
− | ==== | + | ===== PipMakeGloballyUniqueId ===== |
− | === | + | ===== PnpSaveDeviceCapabilities ===== |
==== PipCallDriverAddDevice ==== | ==== PipCallDriverAddDevice ==== | ||
− | === | + | ===== PipCallDriverAddDeviceQueryRoutine ====== |
==== PipProcessStartPhase1 ==== | ==== PipProcessStartPhase1 ==== | ||
Line 132: | Line 156: | ||
==== PipProcessStartPhase3 ==== | ==== PipProcessStartPhase3 ==== | ||
− | |||
− | |||
==== PipEnumerateDevice ==== | ==== PipEnumerateDevice ==== | ||
==== PipEnumerateCompleted ==== | ==== PipEnumerateCompleted ==== | ||
− | |||
− | |||
==== PipProcessRestartPhase1 ==== | ==== PipProcessRestartPhase1 ==== | ||
Line 158: | Line 178: | ||
=== PnpRegSzToString === | === PnpRegSzToString === | ||
+ | |||
+ | == Unicode String Management == | ||
+ | |||
+ | === IopAllocateUnicodeString === | ||
+ | |||
+ | === PipConcatenateUnicodeStrings === | ||
+ | |||
+ | === IopFreeUnicodeString | ||
== PnP IRP Wrappers == | == PnP IRP Wrappers == | ||
Line 178: | Line 206: | ||
=== PnpFixupId === | === PnpFixupId === | ||
+ | |||
+ | == Hardware Registry Keys == | ||
+ | |||
+ | === PipOpenServiceEnumKeys === | ||
+ | |||
+ | === PipServiceInstanceToDeviceInstance === | ||
+ | |||
+ | === PipApplyFunctionToServiceInstances === | ||
+ | |||
+ | ==== PipApplyFunctionToSubKeys ==== | ||
= I/O Manager Backend = | = I/O Manager Backend = | ||
Line 184: | Line 222: | ||
== IopQueryDeviceResources == | == IopQueryDeviceResources == | ||
+ | |||
+ | == IopGetDriverNameFromKeyNode == | ||
+ | |||
+ | == IopReferenceDriverObjectByName == | ||
+ | |||
+ | == IopIsLegacyDriver == | ||
+ | |||
+ | == IopInitializeBuiltinDriver == | ||
+ | |||
+ | === IopInitializeAttributesAndCreateObject === | ||
+ | |||
+ | === IopPrepareDriverLoading === | ||
+ | |||
+ | === IopReadyDeviceObjects === | ||
+ | |||
+ | === IopDriverLoadingFailed === |
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
- 1 Gopher Startup
- 2 Loading Boot Drivers
- 3 Loading System Drivers
- 4 Device Nodes
- 4.1 Device Node Management Functions
- 4.2 Device Node Problems
- 4.3 Device Node State
- 4.4 Instance Paths
- 4.5 Registration
- 4.6 Requests
- 4.7 Processing Device Nodes
- 4.7.1 PipProcessDevNodeTree
- 4.7.1.1 PipAssertDevnodesInConsistentState
- 4.7.1.2 PiProcessNewDeviceNode
- 4.7.1.3 PipCallDriverAddDevice
- 4.7.1.4 PipProcessStartPhase1
- 4.7.1.5 PipProcessStartPhase2
- 4.7.1.6 PipProcessStartPhase3
- 4.7.1.7 PipEnumerateDevice
- 4.7.1.8 PipEnumerateCompleted
- 4.7.1.9 PipProcessRestartPhase1
- 4.7.1.10 PipProcessRestartPhase2 =
- 4.7.1 PipProcessDevNodeTree
- 5 Firmware Mapper
- 6 User-Initiated Driver Loading
- 7 Helper Routines
- 8 I/O Manager Backend
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