ReactOS 0.4.16-dev-106-g10b08aa
|
#include <ntoskrnl.h>
#include <debug.h>
Go to the source code of this file.
Classes | |
struct | _DEVICE_ACTION_REQUEST |
struct | _ADD_DEV_DRIVERS_LIST |
struct | _ATTACH_FILTER_DRIVERS_CONTEXT |
Macros | |
#define | NDEBUG |
#define | MAX_DEVICE_ID_LEN 200 |
#define | MAX_SEPARATORS_INSTANCEID 0 |
#define | MAX_SEPARATORS_DEVICEID 1 |
Enumerations | |
enum | _ADD_DEV_DRIVER_TYPE { LowerFilter , LowerClassFilter , DeviceDriver , UpperFilter , UpperClassFilter } |
Variables | |
ERESOURCE | IopDriverLoadResource |
BOOLEAN | PnpSystemInit |
PDEVICE_NODE | IopRootDeviceNode |
BOOLEAN | PnPBootDriversLoaded |
BOOLEAN | PnPBootDriversInitialized |
LIST_ENTRY | IopDeviceActionRequestList |
WORK_QUEUE_ITEM | IopDeviceActionWorkItem |
BOOLEAN | IopDeviceActionInProgress |
KSPIN_LOCK | IopDeviceActionLock |
KEVENT | PiEnumerationFinished |
static const WCHAR | ServicesKeyName [] = L"\\Registry\\Machine\\System\\CurrentControlSet\\Services\\" |
#define MAX_DEVICE_ID_LEN 200 |
Definition at line 40 of file devaction.c.
#define MAX_SEPARATORS_DEVICEID 1 |
Definition at line 42 of file devaction.c.
#define MAX_SEPARATORS_INSTANCEID 0 |
Definition at line 41 of file devaction.c.
#define NDEBUG |
Definition at line 29 of file devaction.c.
typedef struct _ADD_DEV_DRIVERS_LIST * PADD_DEV_DRIVERS_LIST |
Enumerator | |
---|---|
LowerFilter | |
LowerClassFilter | |
DeviceDriver | |
UpperFilter | |
UpperClassFilter |
Definition at line 64 of file devaction.c.
|
static |
Definition at line 1844 of file devaction.c.
Referenced by IopCancelRemoveChildDevices(), IopCancelRemoveDeviceRelations(), IopQueryRemoveChildDevices(), and IopQueryRemoveDeviceRelations().
|
static |
Definition at line 1803 of file devaction.c.
Referenced by IoRequestDeviceEject().
|
static |
Definition at line 1793 of file devaction.c.
Referenced by IopCancelPrepareDeviceForRemoval(), and IopPrepareDeviceForRemoval().
|
static |
Definition at line 1826 of file devaction.c.
Referenced by IopCancelPrepareDeviceForRemoval(), IopPrepareDeviceForRemoval(), and IoRequestDeviceEject().
|
static |
Definition at line 213 of file devaction.c.
Referenced by PiInitializeDevNode().
Definition at line 411 of file pnpmgr.c.
Referenced by PiInitializeDevNode().
PDEVICE_OBJECT IopGetDeviceObjectFromDeviceInstance | ( | PUNICODE_STRING | DeviceInstance | ) |
Definition at line 206 of file plugplay.c.
Referenced by IopDeviceStatus(), IopGetDeviceDepth(), IopGetDeviceProperty(), IopGetDeviceRelations(), IopGetInterfaceDeviceList(), IopGetRelatedDevice(), PiControlInitializeDevice(), PiControlQueryRemoveDevice(), PiControlSyncDeviceAction(), and PiInitializeDevNode().
NTSTATUS IopGetParentIdPrefix | ( | PDEVICE_NODE | DeviceNode, |
PUNICODE_STRING | ParentIdPrefix | ||
) |
Definition at line 760 of file pnpmgr.c.
Referenced by IopCreateDeviceInstancePath().
VOID NTAPI IopInstallCriticalDevice | ( | PDEVICE_NODE | DeviceNode | ) |
Definition at line 45 of file pnpmgr.c.
Referenced by PiInitializeDevNode().
|
static |
Definition at line 1997 of file devaction.c.
|
static |
Referenced by IopQueryRemoveChildDevices(), IopQueryRemoveDeviceRelations(), IopRemoveDevice(), and IoRequestDeviceEject().
|
static |
Definition at line 1022 of file devaction.c.
Referenced by PiInitializeDevNode(), and PiStartDeviceFinal().
NTSTATUS NTAPI IopQueryDeviceCapabilities | ( | PDEVICE_NODE | DeviceNode, |
PDEVICE_CAPABILITIES | DeviceCaps | ||
) |
Definition at line 854 of file devaction.c.
Referenced by IoGetDeviceProperty(), IopCreateDeviceInstancePath(), IoRequestDeviceEject(), and PiStartDeviceFinal().
|
static |
Definition at line 957 of file devaction.c.
Referenced by PiInitializeDevNode(), and PiStartDeviceFinal().
|
static |
Definition at line 1902 of file devaction.c.
Referenced by IopPrepareDeviceForRemoval(), and IoRequestDeviceEject().
|
static |
Definition at line 1876 of file devaction.c.
Referenced by IopPrepareDeviceForRemoval().
|
static |
Definition at line 1956 of file devaction.c.
Referenced by IopPrepareDeviceForRemoval(), and IoRequestDeviceEject().
|
static |
Definition at line 2060 of file devaction.c.
Referenced by PiDevNodeStateMachine().
|
static |
Definition at line 2186 of file devaction.c.
Referenced by IoRequestDeviceEject().
|
static |
Definition at line 1759 of file devaction.c.
Referenced by IopPrepareDeviceForRemoval(), and IoRequestDeviceEject().
|
static |
Definition at line 1712 of file devaction.c.
Referenced by IopRemoveDevice(), IopSendRemoveChildDevices(), and IopSendRemoveDeviceRelations().
|
static |
Definition at line 1742 of file devaction.c.
Referenced by IopPrepareDeviceForRemoval(), and IoRequestDeviceEject().
|
static |
Definition at line 1783 of file devaction.c.
Referenced by IopRemoveDevice().
NTSTATUS IopSetDeviceInstanceData | ( | HANDLE | InstanceKey, |
PDEVICE_NODE | DeviceNode | ||
) |
Definition at line 606 of file pnpmgr.c.
Referenced by PiInitializeDevNode().
|
static |
Definition at line 1343 of file devaction.c.
Referenced by PiInitializeDevNode().
NTSTATUS IopUpdateResourceMapForPnPDevice | ( | IN PDEVICE_NODE | DeviceNode | ) |
Definition at line 961 of file pnpres.c.
Referenced by IopAssignDeviceResources(), and IopSendRemoveDevice().
|
static |
Definition at line 122 of file devaction.c.
Referenced by IopCreateDeviceInstancePath(), IopQueryCompatibleIds(), and IopQueryHardwareIds().
VOID NTAPI IoRequestDeviceEject | ( | IN PDEVICE_OBJECT | PhysicalDeviceObject | ) |
Definition at line 2203 of file devaction.c.
|
static |
Calls PiAttachFilterDriversCallback for filter drivers (if any)
Definition at line 532 of file devaction.c.
Referenced by PiCallDriverAddDevice().
|
static |
Loads and/or returns the driver associated with the registry entry if the driver is enabled. In case of an error, sets up a corresponding Problem to the DeviceNode.
Definition at line 363 of file devaction.c.
Referenced by PiAttachFilterDrivers(), and PiCallDriverAddDevice().
|
static |
Loads all drivers for a device node (actual service and filters) and calls their AddDevice routine.
[in] | DeviceNode | The device node |
[in] | LoadDrivers | Whether to load drivers if they are not loaded yet (used when storage subsystem is not yet initialized) |
Definition at line 595 of file devaction.c.
Referenced by PiDevNodeStateMachine(), and PipDeviceActionWorker().
|
static |
Definition at line 2312 of file devaction.c.
Referenced by PipDeviceActionWorker().
|
static |
Definition at line 2096 of file devaction.c.
Referenced by PiDevNodeStateMachine().
|
static |
Definition at line 2288 of file devaction.c.
Referenced by PiDevNodeStateMachine().
|
static |
Definition at line 1190 of file devaction.c.
Referenced by PiDevNodeStateMachine().
|
static |
Sends one of the remove IRPs to the device stack.
If there is a mounted VPB attached to a one of the stack devices, the IRP should be send to a VPB's DeviceObject first (which belongs to a FS driver). FS driver will then forward it down to the volume device. While walking the device stack, the function sets (or unsets) VPB_REMOVE_PENDING flag thus blocking all further mounts on a soon-to-be-removed devices
Definition at line 1645 of file devaction.c.
Referenced by IopCancelRemoveDevice(), IopQueryRemoveDevice(), IopSendRemoveDevice(), and IopSendSurpriseRemoval().
Definition at line 2537 of file devaction.c.
Referenced by PiQueueDeviceAction().
NTSTATUS PiPerformSyncDeviceAction | ( | _In_ PDEVICE_OBJECT | DeviceObject, |
_In_ DEVICE_ACTION | Action | ||
) |
Perfom a device operation synchronously via PiQueueDeviceAction.
[in] | DeviceObject | The device object |
[in] | Action | The action |
Definition at line 2718 of file devaction.c.
Referenced by IopInitializeSystemDrivers(), IoSynchronousInvalidateDeviceRelations(), and PiControlSyncDeviceAction().
VOID PiQueueDeviceAction | ( | _In_ PDEVICE_OBJECT | DeviceObject, |
_In_ DEVICE_ACTION | Action, | ||
_In_opt_ PKEVENT | CompletionEvent, | ||
_Out_opt_ NTSTATUS * | CompletionStatus | ||
) |
Queue a device operation to a worker thread.
[in] | DeviceObject | The device object |
[in] | Action | The action |
[in] | CompletionEvent | The completion event object (optional) |
[out] | CompletionStatus | Status returned be the action will be written here |
Definition at line 2659 of file devaction.c.
Referenced by IoInitSystem(), IoInvalidateDeviceRelations(), IoInvalidateDeviceState(), IopInitializeBootDrivers(), IopInitializeBuiltinDriver(), IopInitializePlugPlayServices(), IopInitializeSystemDrivers(), IoReportDetectedDevice(), and PiPerformSyncDeviceAction().
VOID PiSetDevNodeText | ( | _In_ PDEVICE_NODE | DeviceNode, |
_In_ HANDLE | InstanceKey | ||
) |
Sets the DeviceNode's DeviceDesc and LocationInformation registry values.
Definition at line 1089 of file devaction.c.
Referenced by IoReportDetectedDevice(), and PiInitializeDevNode().
|
static |
Definition at line 1573 of file devaction.c.
Referenced by PiDevNodeStateMachine().
|
static |
Processes the IoInvalidateDeviceState request.
Sends IRP_MN_QUERY_PNP_DEVICE_STATE request and sets device node's flags according to the result. Tree reenumeration should be started upon a successful return of the function.
Definition at line 1516 of file devaction.c.
Referenced by PipDeviceActionWorker(), and PiStartDeviceFinal().
BOOLEAN IopDeviceActionInProgress |
Definition at line 48 of file devaction.c.
Referenced by PipDeviceActionWorker(), and PiQueueDeviceAction().
KSPIN_LOCK IopDeviceActionLock |
Definition at line 49 of file devaction.c.
Referenced by IopInitializePlugPlayServices(), PipDeviceActionWorker(), and PiQueueDeviceAction().
LIST_ENTRY IopDeviceActionRequestList |
Definition at line 46 of file devaction.c.
Referenced by IopInitializePlugPlayServices(), PipDeviceActionWorker(), and PiQueueDeviceAction().
WORK_QUEUE_ITEM IopDeviceActionWorkItem |
Definition at line 47 of file devaction.c.
Referenced by PiQueueDeviceAction().
|
extern |
Definition at line 20 of file driver.c.
Referenced by IopLoadDriver().
|
extern |
KEVENT PiEnumerationFinished |
Definition at line 50 of file devaction.c.
Referenced by IopInitializePlugPlayServices(), IopReinitializeBootDrivers(), IopStartRamdisk(), PipDeviceActionWorker(), and PiQueueDeviceAction().
|
extern |
Definition at line 21 of file pnpinit.c.
Referenced by PiDevNodeStateMachine(), and PipDeviceActionWorker().
|
extern |
Definition at line 20 of file pnpinit.c.
Referenced by PiQueueDeviceAction().
|
extern |
Definition at line 17 of file iomgr.c.
Referenced by IoInitSystem().
|
static |
Definition at line 51 of file devaction.c.
Referenced by PiAttachFilterDriversCallback().