#include "iop.h"
Go to the source code of this file.
Classes | |
struct | _DEVICE_LIST_CONTEXT |
Typedefs | |
typedef _DEVICE_LIST_CONTEXT | DEVICE_LIST_CONTEXT |
typedef _DEVICE_LIST_CONTEXT * | PDEVICE_LIST_CONTEXT |
Functions | |
BOOLEAN | IopAddDevicesToBootDriverWorker (IN HANDLE DeviceInstanceHandle, IN PUNICODE_STRING DeviceInstancePath, IN OUT PVOID Context) |
NTSTATUS | IopProcessAddDevicesWorker (IN PDEVICE_NODE DeviceNode, IN PVOID Context) |
NTSTATUS | IopProcessAssignResourcesWorker (IN PDEVICE_NODE DeviceNode, IN PVOID Context) |
VOID | IopPnPCompleteRequest (IN OUT PIRP Irp, IN NTSTATUS Status, IN ULONG_PTR Information) |
NTSTATUS | IopGetDriverDeviceList (IN PDRIVER_OBJECT DriverObject, OUT PDEVICE_LIST_CONTEXT *DeviceList) |
BOOLEAN | IopGetDriverDeviceListWorker (IN HANDLE DeviceInstanceHandle, IN PUNICODE_STRING DeviceInstancePath, IN OUT PVOID Context) |
NTSTATUS | IopAssignResourcesToDevices (IN ULONG DeviceCount, IN PIOP_RESOURCE_REQUEST RequestTable, IN BOOLEAN BootConfigsOK) |
BOOLEAN | IopIsFirmwareDisabled (IN PDEVICE_NODE DeviceNode) |
NTSTATUS | IopAddDevicesToBootDriver (IN PDRIVER_OBJECT DriverObject) |
NTSTATUS | IopReleaseDeviceResources (IN PDEVICE_NODE DeviceNode, IN BOOLEAN ReserveResources) |
NTSTATUS | IopPnPAddDevice (IN PDRIVER_OBJECT DriverObject, IN PDEVICE_OBJECT DeviceObject) |
NTSTATUS | IopArbiterHandlerxx (IN PVOID Context, IN ARBITER_ACTION Action, IN OUT PARBITER_PARAMETERS Parameters) |
NTSTATUS | IopTranslatorHandlerCm (IN PVOID Context, IN PCM_PARTIAL_RESOURCE_DESCRIPTOR Source, IN RESOURCE_TRANSLATION_DIRECTION Direction, IN ULONG AlternativesCount, OPTIONAL IN IO_RESOURCE_DESCRIPTOR Alternatives[], OPTIONAL IN PDEVICE_OBJECT DeviceObject, OUT PCM_PARTIAL_RESOURCE_DESCRIPTOR Target) |
NTSTATUS | IopTranslatorHandlerIo (IN PVOID Context, IN PIO_RESOURCE_DESCRIPTOR Source, IN PDEVICE_OBJECT DeviceObject, OUT PULONG TargetCount, OUT PIO_RESOURCE_DESCRIPTOR *Target) |
NTSTATUS | IopPowerDispatch (IN PDEVICE_OBJECT DeviceObject, IN OUT PIRP Irp) |
NTSTATUS | IopPnPDispatch (IN PDEVICE_OBJECT DeviceObject, IN OUT PIRP Irp) |
USHORT | IopProcessAddDevices (IN PDEVICE_NODE DeviceNode, IN USHORT StartOrder, IN ULONG DriverStartType) |
BOOLEAN | IopProcessAssignResources (IN PDEVICE_NODE DeviceNode, IN BOOLEAN Reallocation, IN BOOLEAN BootConfigsOK) |
VOID | IopNewDevice (IN PDEVICE_OBJECT DeviceObject) |
NTSTATUS | IopStartDriverDevices (IN PDRIVER_OBJECT DriverObject) |
NTSTATUS | IopAssignResourcesToDevices (IN ULONG DeviceCount, IN OUT PIOP_RESOURCE_REQUEST RequestTable, IN BOOLEAN BootConfigsOK) |
NTSTATUS | IopWriteAllocatedResourcesToRegistry (PDEVICE_NODE DeviceNode, PCM_RESOURCE_LIST CmResourceList, ULONG Length) |
|
|
|
Referenced by IopGetDriverDeviceList(), IopGetDriverDeviceListWorker(), IopProcessAssignResources(), IopProcessAssignResourcesWorker(), and IopStartDriverDevices(). |
|
Definition at line 117 of file pnpdd.c. References IopAddDevicesToBootDriverWorker(), IopApplyFunctionToServiceInstances(), NTSTATUS(), NULL, and TRUE. Referenced by IopInitializeBootDrivers().
|
|
Definition at line 166 of file pnpdd.c. References ASSERT, _DEVOBJ_EXTENSION::DeviceNode, _DEVICE_OBJECT::DeviceObjectExtension, DNF_DUPLICATE, _ADD_CONTEXT::DriverStartType, _DEVICE_NODE::DuplicatePDO, exit, FALSE, _DEVICE_NODE::Flags, _ADD_CONTEXT::GroupsToStart, _ADD_CONTEXT::GroupToStartNext, IopCallDriverAddDevice(), IopDeviceObjectFromDeviceInstance(), NTSTATUS(), ObDereferenceObject, OK_TO_ADD_DEVICE, _DEVICE_NODE::PhysicalDeviceObject, and TRUE. Referenced by IopAddDevicesToBootDriver().
|
|
Definition at line 459 of file pnpdd.c. References Action, _ARBITER_LIST_ENTRY::Alternatives, ArbiterActionQueryArbitrate, _ARBITER_LIST_ENTRY::Assignment, and NULL.
|
|
Definition at line 1824 of file pnpdd.c. References ArbiterRequestLegacyReported, ArbiterRequestPnpEnumerated, ASSERT, DNF_MADEUP, FALSE, IopAllocateResources(), IopDeviceObjectToDeviceInstance(), NT_SUCCESS, NTSTATUS(), NULL, and PAGED_CODE. Referenced by IopNewDevice(), and IopProcessAssignResources().
|
|
|
|
Definition at line 1411 of file pnpdd.c. References _DEVICE_LIST_CONTEXT::DeviceCount, ExAcquireResourceShared, ExAllocatePool, ExFreePool(), exit, ExReleaseResource, FALSE, IopApplyFunctionToServiceInstances(), IopGetDriverDeviceListWorker(), IopGetRegistryValue(), IopOpenServiceEnumKeys(), KeEnterCriticalRegion, KeLeaveCriticalRegion, KEY_VALUE_DATA, NT_SUCCESS, NTSTATUS(), NULL, PAGED_CODE, PagedPool, PDEVICE_LIST_CONTEXT, PpRegistryDeviceResource, and TRUE. Referenced by IopStartDriverDevices().
|
|
Definition at line 1516 of file pnpdd.c. References _DEVICE_LIST_CONTEXT::DeviceCount, _DEVICE_LIST_CONTEXT::DeviceList, _DEVOBJ_EXTENSION::DeviceNode, _DEVICE_OBJECT::DeviceObjectExtension, DNF_DUPLICATE, _DEVICE_NODE::DuplicatePDO, exit, _DEVICE_NODE::Flags, IopDeviceObjectFromDeviceInstance(), IopDoesDevNodeHaveProblem, IopIsDeviceInstanceEnabled(), ObDereferenceObject, PAGED_CODE, PDEVICE_LIST_CONTEXT, and TRUE. Referenced by IopGetDriverDeviceList().
|
|
Definition at line 2009 of file pnpdd.c. References ExAcquireResourceShared, ExReleaseResource, FALSE, IopCreateRegistryKeyEx(), IopDeviceObjectToDeviceInstance(), KeEnterCriticalRegion, KeLeaveCriticalRegion, NT_SUCCESS, NTSTATUS(), NULL, PpRegistryDeviceResource, RtlInitUnicodeString(), and TRUE. Referenced by IopPnPDispatch().
|
|
Definition at line 1596 of file pnpdd.c. References _START_CONTEXT::AddContext, DNF_ADDED, DNF_LEGACY_DRIVER, DNF_NEED_QUERY_IDS, DNF_NO_RESOURCE_REQUIRED, DNF_RESOURCE_ASSIGNED, DNF_RESOURCE_REPORTED, _ADD_CONTEXT::DriverStartType, exit, FALSE, _DEVICE_NODE::Flags, _ADD_CONTEXT::GroupsToStart, _ADD_CONTEXT::GroupToStartNext, IopAssignResourcesToDevices(), IopCallDriverAddDevice(), IopProcessAssignResources(), IopProcessStartDevices(), IopSetDevNodeProblem, IopStartAndEnumerateDevice(), _START_CONTEXT::LoadDriver, _START_CONTEXT::NewDevice, NO_MORE_GROUP, NT_SUCCESS, NTSTATUS(), PAGED_CODE, _IOP_RESOURCE_REQUEST::PhysicalDevice, _IOP_RESOURCE_REQUEST::Priority, _IOP_RESOURCE_REQUEST::ResourceAssignment, _DEVICE_NODE::ResourceList, _DEVICE_NODE::ResourceListTranslated, _IOP_RESOURCE_REQUEST::Status, _IOP_RESOURCE_REQUEST::TranslatedResourceAssignment, and TRUE. Referenced by IopDeviceActionWorker().
|
|
Definition at line 419 of file pnpdd.c. References PAGED_CODE. Referenced by IopPnPDriverEntry().
|
|
Definition at line 1009 of file pnpdd.c. References IO_NO_INCREMENT, IoCompleteRequest, _IRP::IoStatus, Irp, and Status. Referenced by IopPnPDispatch().
|
|
Definition at line 648 of file pnpdd.c. References ArbArbiterHandler(), _ARBITER_INTERFACE::ArbiterHandler, _PNP_BUS_INFORMATION::BusNumber, BusQueryCompatibleIDs, BusQueryDeviceID, BusQueryInstanceID, BusRelations, _PNP_BUS_INFORMATION::BusTypeGuid, _IOPNP_DEVICE_EXTENSION::CompatibleIdList, _IOPNP_DEVICE_EXTENSION::CompatibleIdListSize, _ARBITER_INTERFACE::Context, _DEVICE_RELATIONS::Count, _DEVICE_CAPABILITIES::DeviceState, ExAllocatePool, _DEVICE_CAPABILITIES::HardwareDisabled, _DEVICE_NODE::InstancePath, IoGetCurrentIrpStackLocation, IopCompareGuid, IopGetDeviceResourcesFromRegistry(), IopGetRootDevices(), IopIsFirmwareDisabled(), IopPnPCompleteRequest(), IopRootBusNumberArbiter, IopRootDeviceNode, IopRootDmaArbiter, IopRootIrqArbiter, IopRootMemArbiter, IopRootPortArbiter, IopTranslatorHandlerCm(), IopTranslatorHandlerIo(), _IRP::IoStatus, Irp, IRP_MN_CANCEL_REMOVE_DEVICE, IRP_MN_CANCEL_STOP_DEVICE, IRP_MN_DEVICE_USAGE_NOTIFICATION, IRP_MN_QUERY_BUS_INFORMATION, IRP_MN_QUERY_CAPABILITIES, IRP_MN_QUERY_DEVICE_RELATIONS, IRP_MN_QUERY_ID, IRP_MN_QUERY_INTERFACE, IRP_MN_QUERY_REMOVE_DEVICE, IRP_MN_QUERY_RESOURCE_REQUIREMENTS, IRP_MN_QUERY_RESOURCES, IRP_MN_QUERY_STOP_DEVICE, IRP_MN_REMOVE_DEVICE, IRP_MN_START_DEVICE, IRP_MN_STOP_DEVICE, _PNP_BUS_INFORMATION::LegacyBusType, _IO_STACK_LOCATION::MinorFunction, NT_SUCCESS, NTSTATUS(), NULL, _DEVICE_RELATIONS::Objects, ObReferenceObject, PAGED_CODE, PagedPool, _IO_STACK_LOCATION::Parameters, _DEVICE_NODE::PhysicalDeviceObject, PIOPNP_DEVICE_EXTENSION, PnpDefaultInterfaceType, QUERY_RESOURCE_LIST, QUERY_RESOURCE_REQUIREMENTS, REGISTRY_BASIC_CONFIGVECTOR, REGISTRY_BOOT_CONFIG, _DEVICE_CAPABILITIES::Size, TargetDeviceRelation, _TRANSLATOR_INTERFACE::TranslateResourceRequirements, _TRANSLATOR_INTERFACE::TranslateResources, TRUE, and _DEVICE_CAPABILITIES::Version. Referenced by IopPnPDriverEntry().
|
|
Definition at line 570 of file pnpdd.c. References IO_NO_INCREMENT, IoCompleteRequest, IoGetCurrentIrpStackLocation, _IRP::IoStatus, Irp, IRP_MN_POWER_SEQUENCE, IRP_MN_QUERY_POWER, IRP_MN_SET_POWER, IRP_MN_WAIT_WAKE, _IO_STACK_LOCATION::MinorFunction, NTSTATUS(), _IO_STACK_LOCATION::Parameters, PoPowerSequence, PoStartNextPowerIrp(), _POWER_SEQUENCE::SequenceD1, _POWER_SEQUENCE::SequenceD2, _POWER_SEQUENCE::SequenceD3, and Status. Referenced by IopPnPDriverEntry().
|
|
Definition at line 1053 of file pnpdd.c. References _DEVICE_NODE::Child, _ADD_CONTEXT::DriverStartType, _ADD_CONTEXT::GroupsToStart, _ADD_CONTEXT::GroupToStartNext, IopAcquireEnumerationLock, IopProcessAddDevicesWorker(), IopReleaseEnumerationLock, IopRootDeviceNode, NO_MORE_GROUP, _DEVICE_NODE::Sibling, and USHORT. Referenced by IopInitializeSystemDrivers().
|
|
Definition at line 1117 of file pnpdd.c. References DNF_ADDED, IopAcquireEnumerationLock, IopCallDriverAddDevice(), IopForAllChildDeviceNodes(), IopProcessAddDevicesWorker(), IopReleaseEnumerationLock, OK_TO_ADD_DEVICE, PADD_CONTEXT, and TRUE. Referenced by IopProcessAddDevices(), and IopProcessAddDevicesWorker().
|
|
Definition at line 1185 of file pnpdd.c. References _DEVICE_NODE::Child, _DEVICE_LIST_CONTEXT::DeviceCount, _DEVICE_LIST_CONTEXT::DeviceList, _DEVOBJ_EXTENSION::DeviceNode, _DEVICE_OBJECT::DeviceObjectExtension, DNF_ASSIGNING_RESOURCES, DNF_NO_RESOURCE_REQUIRED, DNF_RESOURCE_ASSIGNED, DNF_RESOURCE_REPORTED, ExAcquireResourceShared, ExAllocatePool, ExFreePool(), ExReleaseResource, FALSE, _DEVICE_NODE::Flags, IOP_RESOURCE_REQUEST, IopAcquireEnumerationLock, IopAssignResourcesToDevices(), IopDeviceTreeLock, IopNumberDeviceNodes, IopProcessAssignResourcesWorker(), IopReleaseEnumerationLock, IopSetDevNodeProblem, NT_SUCCESS, PAGED_CODE, PagedPool, PDEVICE_LIST_CONTEXT, _IOP_RESOURCE_REQUEST::PhysicalDevice, _IOP_RESOURCE_REQUEST::Priority, _DEVICE_LIST_CONTEXT::Reallocation, _IOP_RESOURCE_REQUEST::ResourceAssignment, _DEVICE_NODE::ResourceList, _DEVICE_NODE::ResourceListTranslated, _DEVICE_NODE::Sibling, Status, _IOP_RESOURCE_REQUEST::Status, _IOP_RESOURCE_REQUEST::TranslatedResourceAssignment, and TRUE. Referenced by IopBusCheck(), IopDeviceActionWorker(), IopInitializeSystemDrivers(), and IopNewDevice().
|
|
Definition at line 1328 of file pnpdd.c. References _DEVICE_LIST_CONTEXT::DeviceCount, _DEVICE_LIST_CONTEXT::DeviceList, DNF_ADDED, DNF_ASSIGN_RESOURCE_PHASE, DNF_ASSIGNING_RESOURCES, DNF_START_PHASE, _DEVICE_OBJECT::Flags, IopAcquireEnumerationLock, IopClearDevNodeProblem, IopForAllChildDeviceNodes(), IopIsDevNodeProblem, IopProcessAssignResourcesWorker(), IopReleaseEnumerationLock, PAGED_CODE, PDEVICE_LIST_CONTEXT, and _DEVICE_LIST_CONTEXT::Reallocation. Referenced by IopProcessAssignResources(), and IopProcessAssignResourcesWorker().
|
|
Definition at line 263 of file pnpdd.c. References ArbiterRequestPnpEnumerated, ArbiterRequestUndefined, ASSERT, DNF_BOOT_CONFIG_RESERVED, DNF_HAS_BOOT_CONFIG, DNF_MADEUP, ExAcquireResourceShared, ExReleaseResource, IopCreateRegistryKeyEx(), IopDeviceObjectToDeviceInstance(), IopLegacyResourceAllocation(), IoPnpDriverObject, IopQueryDeviceResources(), IopResourcesReleased, KeEnterCriticalRegion, KeLeaveCriticalRegion, NT_SUCCESS, NTSTATUS(), NULL, PAGED_CODE, PpRegistryDeviceResource, QUERY_RESOURCE_LIST, TITLE_INDEX_VALUE, and TRUE. Referenced by IopDeleteLegacyKey(), IopDeleteLockedDeviceNode(), IopDisableDevice(), IopDriverLoadingFailed(), and IoReportDetectedDevice().
|
|
Definition at line 1740 of file pnpdd.c. References ASSERT, _DEVICE_LIST_CONTEXT::DeviceCount, _DEVICE_LIST_CONTEXT::DeviceList, _DEVOBJ_EXTENSION::DeviceNode, _DEVICE_OBJECT::DeviceObjectExtension, DNF_NEED_QUERY_IDS, ExFreePool(), _DEVICE_NODE::Flags, IopGetDriverDeviceList(), IopRequestDeviceAction(), NTSTATUS(), NULL, ObDereferenceObject, PAGED_CODE, PDEVICE_LIST_CONTEXT, PDRIVER_ADD_DEVICE, PnPInitialized, and StartDevice. Referenced by IopLoadDriver().
|
|
Definition at line 511 of file pnpdd.c. References TranslateChildToParent. Referenced by IopPnPDispatch().
|
|
Definition at line 540 of file pnpdd.c. References ExAllocatePool, NULL, and PagedPool. Referenced by IopPnPDispatch().
|
|
Definition at line 1931 of file pnpdd.c. References ExAcquireResourceShared, ExReleaseResource, IopCreateRegistryKeyEx(), IopDeviceObjectToDeviceInstance(), KeEnterCriticalRegion, KeLeaveCriticalRegion, NT_SUCCESS, NTSTATUS(), NULL, _DEVICE_NODE::PhysicalDeviceObject, PpRegistryDeviceResource, RtlInitUnicodeString(), TITLE_INDEX_VALUE, and TRUE.
|