14#define _IO_DEBUG_ 0x00
19#define IO_IRP_DEBUG 0x01
20#define IO_FILE_DEBUG 0x02
21#define IO_API_DEBUG 0x04
22#define IO_CTL_DEBUG 0x08
28#ifdef NEW_DEBUG_SYSTEM_IMPLEMENTED
29#define IOTRACE(x, ...) \
31 DbgPrintEx("%s [%.16s] - ", \
33 PsGetCurrentProcess()->ImageFileName); \
34 DbgPrintEx(__VA_ARGS__); \
37#define IOTRACE(x, ...) \
38 if (x & IopTraceLevel) \
40 DbgPrint("%s [%.16s] - ", \
42 PsGetCurrentProcess()->ImageFileName); \
43 DbgPrint(__VA_ARGS__); \
47#define IOTRACE(x, fmt, ...) DPRINT(fmt, ##__VA_ARGS__)
53#define ENUM_ROOT L"\\Registry\\Machine\\System\\CurrentControlSet\\Enum"
58#define IO_METHOD_FROM_CTL_CODE(c) (c & 0x00000003)
66#define RD_NO_XIPROM_DESCRIPTOR 1
70#define RD_NO_RAMDISK_DRIVER 2
74#define RD_FSCTL_FAILED 3
78#define RD_GUID_CONVERT_FAILED 4
82#define RD_SYMLINK_CREATE_FAILED 5
86#define RD_SYSROOT_INIT_FAILED 6
91#define IOP_MAX_REPARSE_TRAVERSAL 0x20
96#define IOP_USE_TOP_LEVEL_DEVICE_HINT 0x01
97#define IOP_CREATE_FILE_OBJECT_EXTENSION 0x02
112#define IopAllocateMdlFromLookaside \
113 ObpAllocateObjectCreateInfoBuffer
114#define IopFreeMdlFromLookaside \
115 ObpFreeCapturedAttributes
120#define IsIrpSynchronous(Irp, FileObject) \
121 ((Irp->Flags & IRP_SYNCHRONOUS_API) || \
124 FileObject->Flags & FO_SYNCHRONOUS_IO)) \
129#define IoGetDevObjExtension(DeviceObject) \
130 ((PEXTENDED_DEVOBJ_EXTENSION) \
131 (DeviceObject->DeviceObjectExtension)) \
136#define IoGetDrvObjExtension(DriverObject) \
137 ((PEXTENDED_DRIVER_EXTENSION) \
138 (DriverObject->DriverExtension)) \
146#define IopDeviceNodeSetFlag(DeviceNode, Flag) \
147 ((DeviceNode)->Flags |= (Flag))
155#define IopDeviceNodeClearFlag(DeviceNode, Flag) \
156 ((DeviceNode)->Flags &= ~(Flag))
164#define IopDeviceNodeHasFlag(DeviceNode, Flag) \
165 (((DeviceNode)->Flags & (Flag)) > 0)
173#define IopDeviceNodeSetUserFlag(DeviceNode, UserFlag) \
174 ((DeviceNode)->UserFlags |= (UserFlag))
182#define IopDeviceNodeClearUserFlag(DeviceNode, UserFlag)\
183 ((DeviceNode)->UserFlags &= ~(UserFlag))
191#define IopDeviceNodeHasUserFlag(DeviceNode, UserFlag) \
192 (((DeviceNode)->UserFlags & (UserFlag)) > 0)
200#define IopDeviceNodeSetProblem(DeviceNode, Problem) \
201 ((DeviceNode)->Problem |= (Problem))
209#define IopDeviceNodeClearProblem(DeviceNode, Problem) \
210 ((DeviceNode)->Problem &= ~(Problem))
218#define IopDeviceNodeHasProblem(DeviceNode, Problem) \
219 (((DeviceNode)->Problem & (Problem)) > 0)
229#define IopInitDeviceTreeTraverseContext( \
230 _DeviceTreeTraverseContext, _DeviceNode, _Action, \
232 (_DeviceTreeTraverseContext)->FirstDeviceNode = \
234 (_DeviceTreeTraverseContext)->Action = (_Action); \
235 (_DeviceTreeTraverseContext)->Context = (_Context); }
242#define IopIsValidPhysicalDeviceObject(PhysicalDeviceObject) \
243 (((PEXTENDED_DEVOBJ_EXTENSION)PhysicalDeviceObject) && \
244 (((PEXTENDED_DEVOBJ_EXTENSION)PhysicalDeviceObject->DeviceObjectExtension)->DeviceNode) && \
245 (((PEXTENDED_DEVOBJ_EXTENSION)PhysicalDeviceObject->DeviceObjectExtension)->DeviceNode->Flags & DNF_ENUMERATED))
803 _In_ PDRIVE_LAYOUT_INFORMATION_EX DriveLayout,
static GENERIC_MAPPING GenericMapping
static WCHAR ServiceName[]
_In_ ULONG _In_ BATTERY_QUERY_INFORMATION_LEVEL _In_ LONG _In_ ULONG _Out_ PULONG ReturnedLength
static const CLASS_AND_INTERFACES ExpectedInterfaces[]
PDEVICE_OBJECT PhysicalDeviceObject
_Inout_ PFCB _Inout_ PUNICODE_STRING RemainingName
static const WCHAR SymbolicLink[]
static const WCHAR Signature[]
NTSTATUS NTAPI IoCompletion(PDEVICE_OBJECT DeviceObject, PIRP Irp, PVOID Ctx)
IN CINT OUT PVOID IN ULONG OUT PULONG ReturnLength
IN OUT PVCB IN PDEVICE_OBJECT IN PVPB Vpb
#define MAXIMUM_PROCESSORS
_In_opt_ PFILE_OBJECT _In_opt_ PETHREAD Thread
_Must_inspect_result_ _In_ PFILE_OBJECT _In_ SECURITY_INFORMATION SecurityInformation
enum _FILE_INFORMATION_CLASS FILE_INFORMATION_CLASS
_In_ PLIST_ENTRY _In_ PSTRING _In_ USHORT _In_opt_ PSTRING _In_opt_ PSTRING _In_ ULONG _In_ ULONG _In_opt_ PVOID _In_opt_ PVOID FilterContext
_Must_inspect_result_ _In_ PLARGE_INTEGER _In_ PLARGE_INTEGER _In_ ULONG _In_ PFILE_OBJECT _In_ PVOID Process
_Must_inspect_result_ _In_ WDFDEVICE _In_ REFGUID EventGuid
static OUT PIO_STATUS_BLOCK IoStatusBlock
DWORD * PSECURITY_INFORMATION
__in UCHAR __in POWER_STATE __in_opt PVOID __in PIO_STATUS_BLOCK IoStatus
_Must_inspect_result_ _Out_ PNDIS_STATUS _In_ NDIS_HANDLE _In_ ULONG _Out_ PNDIS_STRING _Out_ PNDIS_HANDLE KeyHandle
_In_ ACCESS_MASK _In_ POBJECT_ATTRIBUTES _Reserved_ ULONG _In_opt_ PUNICODE_STRING _In_ ULONG _Out_opt_ PULONG Disposition
_In_ PVOID _In_ BOOLEAN Alertable
_In_opt_ HANDLE _In_opt_ PIO_APC_ROUTINE _In_opt_ PVOID ApcContext
enum _PNP_DEVNODE_STATE PNP_DEVNODE_STATE
VOID(NTAPI * PKNORMAL_ROUTINE)(IN PVOID NormalContext OPTIONAL, IN PVOID SystemArgument1 OPTIONAL, IN PVOID SystemArgument2 OPTIONAL)
ACCESS_MASK * PACCESS_MASK
_In_ ULONG _In_ ULONG _In_ ULONG Length
NTSTATUS PiIrpQueryResources(_In_ PDEVICE_NODE DeviceNode, _Out_ PCM_RESOURCE_LIST *Resources)
struct _DRIVER_INFORMATION DRIVER_INFORMATION
PVOID IoOpenFileOnDevice(IN PVOID SymbolicLink, IN PWCHAR Name)
LIST_ENTRY IopErrorLogListHead
NTSTATUS NTAPI IopOpenRegistryKeyEx(PHANDLE KeyHandle, HANDLE ParentKey, PUNICODE_STRING Name, ACCESS_MASK DesiredAccess)
NTSTATUS PiIrpStartDevice(_In_ PDEVICE_NODE DeviceNode)
LIST_ENTRY IopDeviceActionRequestList
PDEVICE_NODE FASTCALL IopGetDeviceNode(IN PDEVICE_OBJECT DeviceObject)
NTSTATUS PiIrpQueryPnPDeviceState(_In_ PDEVICE_NODE DeviceNode, _Out_ PPNP_DEVICE_STATE DeviceState)
enum _SECURITY_DESCRIPTOR_TYPE SECURITY_DESCRIPTOR_TYPE
BOOLEAN NTAPI IoInitSystem(IN PLOADER_PARAMETER_BLOCK LoaderBlock)
enum _IOP_TRANSFER_TYPE IOP_TRANSFER_TYPE
NTSTATUS PiIrpCancelStopDevice(_In_ PDEVICE_NODE DeviceNode)
VOID NTAPI IoCancelThreadIo(IN PETHREAD Thread)
struct _EXTENDED_IO_REMOVE_LOCK * PEXTENDED_IO_REMOVE_LOCK
VOID NTAPI IopRemoveTimerFromTimerList(IN PIO_TIMER Timer)
NTSTATUS NTAPI RawFsDriverEntry(IN PDRIVER_OBJECT DriverObject, IN PUNICODE_STRING RegistryPath)
VOID NTAPI IopReinitializeBootDrivers(VOID)
NTSTATUS NTAPI IoChangeFileObjectFilterContext(IN PFILE_OBJECT FileObject, IN PVOID FilterContext, IN BOOLEAN Define)
KSPIN_LOCK IopDeviceActionLock
@ PiActionEnumRootDevices
NTSTATUS IopInitPlugPlayEvents(VOID)
NTSTATUS IopInitializeDriverModule(_In_ PLDR_DATA_TABLE_ENTRY ModuleObject, _In_ HANDLE ServiceHandle, _Out_ PDRIVER_OBJECT *DriverObject, _Out_ NTSTATUS *DriverEntryStatus)
Initialize a loaded driver.
ULONG NTAPI PnpDetermineResourceListSize(IN PCM_RESOURCE_LIST ResourceList)
VOID NTAPI IopLogWorker(IN PVOID Parameter)
VOID NTAPI IopUnloadDevice(IN PDEVICE_OBJECT DeviceObject)
NTSTATUS IopLoadDriver(_In_ HANDLE ServiceHandle, _Out_ PDRIVER_OBJECT *DriverObject)
POBJECT_TYPE _IoFileObjectType
VOID PnpRootInitializeDevExtension(VOID)
BOOLEAN NTAPI IoInitializeCrashDump(IN HANDLE PageFileHandle)
GENERIC_MAPPING IopFileMapping
NTSTATUS NTAPI IopReferenceDeviceObject(IN PDEVICE_OBJECT DeviceObject)
VOID PiInsertDevNode(_In_ PDEVICE_NODE DeviceNode, _In_ PDEVICE_NODE ParentNode)
BOOLEAN IoRemoteBootClient
NTSTATUS NTAPI IopFixupResourceListWithRequirements(IN PIO_RESOURCE_REQUIREMENTS_LIST RequirementsList, OUT PCM_RESOURCE_LIST *ResourceList)
_SECURITY_DESCRIPTOR_TYPE
USHORT NTAPI PpInitGetGroupOrderIndex(IN HANDLE ServiceHandle)
PVOID IoOpenSymlink(IN PVOID SymbolicLink)
VOID NTAPI IopCompleteRequest(IN PKAPC Apc, IN PKNORMAL_ROUTINE *NormalRoutine, IN PVOID *NormalContext, IN PVOID *SystemArgument1, IN PVOID *SystemArgument2)
NTSTATUS IopFetchConfigurationInformation(_Out_ PWSTR *SymbolicLinkList, _In_ GUID Guid, _In_ ULONG ExpectedInterfaces, _Out_ PULONG Interfaces)
NTSTATUS NTAPI IopGetSetSecurityObject(IN PVOID ObjectBody, IN SECURITY_OPERATION_CODE OperationCode, IN PSECURITY_INFORMATION SecurityInformation, IN OUT PSECURITY_DESCRIPTOR SecurityDescriptor, IN OUT PULONG BufferLength, OUT PSECURITY_DESCRIPTOR *OldSecurityDescriptor, IN POOL_TYPE PoolType, IN OUT PGENERIC_MAPPING GenericMapping)
NTSTATUS NTAPI IopQueryDeviceCapabilities(PDEVICE_NODE DeviceNode, PDEVICE_CAPABILITIES DeviceCaps)
NTSTATUS NTAPI IoComputeDesiredAccessFileObject(IN PFILE_OBJECT FileObject, IN PACCESS_MASK DesiredAccess)
VOID NTAPI IopShutdownBaseFileSystems(IN PLIST_ENTRY ListHead)
BOOLEAN NTAPI IopInitializeReserveIrp(IN PRESERVE_IRP_ALLOCATOR ReserveIrpAllocator)
struct _OPEN_PACKET * POPEN_PACKET
VOID IopStartBootLog(VOID)
NTSTATUS NTAPI IopAssignDeviceResources(IN PDEVICE_NODE DeviceNode)
PVPB NTAPI IopCheckVpbMounted(IN POPEN_PACKET OpenPacket, IN PDEVICE_OBJECT DeviceObject, IN PUNICODE_STRING RemainingName, OUT PNTSTATUS Status)
struct _FILE_OBJECT_EXTENSION FILE_OBJECT_EXTENSION
VOID IopStoreSystemPartitionInformation(_In_ PUNICODE_STRING NtSystemPartitionDeviceName, _In_ PUNICODE_STRING OsLoaderPathName)
struct _IOP_MINI_COMPLETION_PACKET IOP_MINI_COMPLETION_PACKET
VOID FASTCALL IopInitializeSystemDrivers(VOID)
POBJECT_TYPE IoCompletionType
PDEVICE_NODE PipAllocateDeviceNode(IN PDEVICE_OBJECT PhysicalDeviceObject)
NTSTATUS IoCreateDriverList(VOID)
struct _EXTENDED_IO_REMOVE_LOCK EXTENDED_IO_REMOVE_LOCK
VOID PiClearDevNodeProblem(_In_ PDEVICE_NODE DeviceNode)
struct _IO_BUS_TYPE_GUID_LIST IO_BUS_TYPE_GUID_LIST
PIRP NTAPI IopAllocateReserveIrp(IN CCHAR StackSize)
VOID IopInitBootLog(IN BOOLEAN StartBootLog)
VOID IopSaveBootLogToFile(VOID)
KSPIN_LOCK IopDeviceTreeLock
ULONG IopNumTriageDumpDataBlocks
struct _ERROR_LOG_ENTRY * PERROR_LOG_ENTRY
NTSTATUS NTAPI IopQueryNameInternal(IN PVOID ObjectBody, IN BOOLEAN HasName, IN BOOLEAN QueryDosName, OUT POBJECT_NAME_INFORMATION ObjectNameInfo, IN ULONG Length, OUT PULONG ReturnLength, IN KPROCESSOR_MODE PreviousMode)
BOOLEAN NTAPI IopVerifyDeviceObjectOnStack(IN PDEVICE_OBJECT BaseDeviceObject, IN PDEVICE_OBJECT TopDeviceObjectHint)
VOID NTAPI IopInitErrorLog(VOID)
NTSTATUS NTAPI IopCreateDeviceKeyPath(IN PCUNICODE_STRING RegistryPath, IN ULONG CreateOptions, OUT PHANDLE Handle)
enum _IOP_DEVICE_LIST_OPERATION * PIOP_DEVICE_LIST_OPERATION
VOID PiNotifyTargetDeviceChange(_In_ LPCGUID Event, _In_ PDEVICE_OBJECT DeviceObject, _In_opt_ PTARGET_DEVICE_CUSTOM_NOTIFICATION CustomNotification)
Delivers the event to all drivers subscribed to EventCategoryTargetDeviceChange PnP event.
VOID NTAPI IopDereferenceDeviceObject(IN PDEVICE_OBJECT DeviceObject, IN BOOLEAN ForceUnload)
NTSTATUS NTAPI IopCleanupFailedIrp(IN PFILE_OBJECT FileObject, IN PKEVENT EventObject, IN PVOID Buffer OPTIONAL)
NTSTATUS NTAPI IopCreateVpb(IN PDEVICE_OBJECT DeviceObject)
NTSTATUS PnpRootRegisterDevice(IN PDEVICE_OBJECT DeviceObject)
BOOLEAN NTAPI PnpRegSzToString(IN PWCHAR RegSzData, IN ULONG RegSzLength, OUT PUSHORT StringLength OPTIONAL)
USHORT NTAPI PipGetDriverTagPriority(IN HANDLE ServiceHandle)
NTSTATUS NTAPI IopInitializePlugPlayServices(VOID)
struct _FS_CHANGE_NOTIFY_ENTRY FS_CHANGE_NOTIFY_ENTRY
NTSTATUS NTAPI IopParseFile(IN PVOID ParseObject, IN PVOID ObjectType, IN OUT PACCESS_STATE AccessState, IN KPROCESSOR_MODE AccessMode, IN ULONG Attributes, IN OUT PUNICODE_STRING CompleteName, IN OUT PUNICODE_STRING RemainingName, IN OUT PVOID Context OPTIONAL, IN PSECURITY_QUALITY_OF_SERVICE SecurityQos OPTIONAL, OUT PVOID *Object)
NTSTATUS PnpRootCreateDevice(IN PUNICODE_STRING ServiceName, OUT PDEVICE_OBJECT *PhysicalDeviceObject, OUT PUNICODE_STRING FullInstancePath)
NTSTATUS IopGetSystemPowerDeviceObject(IN PDEVICE_OBJECT *DeviceObject)
VOID NTAPI IopDoNameTransmogrify(IN PIRP Irp, IN PFILE_OBJECT FileObject, IN PREPARSE_DATA_BUFFER DataBuffer)
enum _SECURITY_DESCRIPTOR_TYPE * PSECURITY_DESCRIPTOR_TYPE
PVOID IopTriageDumpDataBlocks[64]
NTSTATUS NTAPI IopGetRelatedTargetDevice(IN PFILE_OBJECT FileObject, OUT PDEVICE_NODE *DeviceNode)
NTSTATUS NTAPI IoGetRelatedTargetDevice(IN PFILE_OBJECT FileObject, OUT PDEVICE_OBJECT *DeviceObject)
NTSTATUS IopQueueDeviceInstallEvent(_In_ const GUID *Guid, _In_ PUNICODE_STRING DeviceId)
VOID IopInitDriverImplementation(VOID)
VOID NTAPI IopAbortInterruptedIrp(IN PKEVENT EventObject, IN PIRP Irp)
NTSTATUS NTAPI IopGetRegistryValue(IN HANDLE Handle, IN PWSTR ValueName, OUT PKEY_VALUE_FULL_INFORMATION *Information)
VOID NTAPI IoInitVpbImplementation(VOID)
PIRP NTAPI IopAllocateIrpMustSucceed(IN CCHAR StackSize)
NTSTATUS FASTCALL IopAttachFilterDrivers(IN PDEVICE_NODE DeviceNode, IN HANDLE EnumSubKey, IN HANDLE ClassKey, IN BOOLEAN Lower)
struct _SHUTDOWN_ENTRY SHUTDOWN_ENTRY
struct _IO_INTERRUPT * PIO_INTERRUPT
NTSTATUS NTAPI PiInitCacheGroupInformation(VOID)
PIO_BUS_TYPE_GUID_LIST IopBusTypeGuidList
struct _FS_CHANGE_NOTIFY_ENTRY * PFS_CHANGE_NOTIFY_ENTRY
NTSTATUS NTAPI PnpRootDriverEntry(IN PDRIVER_OBJECT DriverObject, IN PUNICODE_STRING RegistryPath)
@ IopCompletionPacketMini
@ IopCompletionPacketQuota
struct _DRIVER_INFORMATION * PDRIVER_INFORMATION
NTSTATUS IopTraverseDeviceTree(PDEVICETREE_TRAVERSE_CONTEXT Context)
NTSTATUS IopQueueDeviceChangeEvent(_In_ const GUID *EventGuid, _In_ const GUID *InterfaceClassGuid, _In_ PUNICODE_STRING SymbolicLinkName)
VOID PiNotifyDeviceInterfaceChange(_In_ LPCGUID Event, _In_ LPCGUID InterfaceClassGuid, _In_ PUNICODE_STRING SymbolicLinkName)
Delivers the event to all drivers subscribed to EventCategoryDeviceInterfaceChange.
VOID PiSetDevNodeText(_In_ PDEVICE_NODE DeviceNode, _In_ HANDLE InstanceKey)
Sets the DeviceNode's DeviceDesc and LocationInformation registry values.
NTSTATUS IopSynchronousCall(IN PDEVICE_OBJECT DeviceObject, IN PIO_STACK_LOCATION IoStackLocation, OUT PVOID *Information)
NTSTATUS IopFreeDeviceNode(IN PDEVICE_NODE DeviceNode)
struct _DUMMY_FILE_OBJECT DUMMY_FILE_OBJECT
VOID NTAPI IoShutdownSystem(IN ULONG Phase)
NTSTATUS NTAPI IopInitiatePnpIrp(IN PDEVICE_OBJECT DeviceObject, IN PIO_STATUS_BLOCK IoStatusBlock, IN UCHAR MinorFunction, IN PIO_STACK_LOCATION Stack)
PVOID NTAPI IoGetFileObjectFilterContext(IN PFILE_OBJECT FileObject)
NTSTATUS NTAPI IopQueryName(IN PVOID ObjectBody, IN BOOLEAN HasName, OUT POBJECT_NAME_INFORMATION ObjectNameInfo, IN ULONG Length, OUT PULONG ReturnLength, IN KPROCESSOR_MODE PreviousMode)
NTSTATUS NTAPI IopAcquireFileObjectLock(_In_ PFILE_OBJECT FileObject, _In_ KPROCESSOR_MODE AccessMode, _In_ BOOLEAN Alertable, _Out_ PBOOLEAN LockFailed)
VOID NTAPI IopDeleteDriver(IN PVOID ObjectBody)
struct _IO_UNLOAD_SAFE_COMPLETION_CONTEXT * PIO_UNLOAD_SAFE_COMPLETION_CONTEXT
struct _RESERVE_IRP_ALLOCATOR RESERVE_IRP_ALLOCATOR
NTSTATUS IopGetDriverNames(_In_ HANDLE ServiceHandle, _Out_ PUNICODE_STRING DriverName, _Out_opt_ PUNICODE_STRING ServiceName)
VOID FASTCALL IopInitializeBootDrivers(VOID)
NTSTATUS PiIrpQueryResourceRequirements(_In_ PDEVICE_NODE DeviceNode, _Out_ PIO_RESOURCE_REQUIREMENTS_LIST *Resources)
NTSTATUS NTAPI IopUpdateRootKey(VOID)
VOID PiSetDevNodeProblem(_In_ PDEVICE_NODE DeviceNode, _In_ UINT32 Problem)
NTSTATUS NTAPI IopCreateRegistryKeyEx(OUT PHANDLE Handle, IN HANDLE BaseHandle OPTIONAL, IN PUNICODE_STRING KeyName, IN ACCESS_MASK DesiredAccess, IN ULONG CreateOptions, OUT PULONG Disposition OPTIONAL)
NTSTATUS NTAPI IopStartRamdisk(IN PLOADER_PARAMETER_BLOCK LoaderBlock)
PNP_DEVNODE_STATE PiSetDevNodeState(_In_ PDEVICE_NODE DeviceNode, _In_ PNP_DEVNODE_STATE NewState)
enum _DEVICE_ACTION DEVICE_ACTION
NTSTATUS NTAPI PipCallDriverAddDevice(IN PDEVICE_NODE DeviceNode, IN BOOLEAN LoadDriver, IN PDRIVER_OBJECT DriverObject)
struct _DUMMY_FILE_OBJECT * PDUMMY_FILE_OBJECT
struct _IO_BUS_TYPE_GUID_LIST * PIO_BUS_TYPE_GUID_LIST
struct _SHUTDOWN_ENTRY * PSHUTDOWN_ENTRY
NTSTATUS NTAPI IopDetectResourceConflict(IN PCM_RESOURCE_LIST ResourceList, IN BOOLEAN Silent, OUT OPTIONAL PCM_PARTIAL_RESOURCE_DESCRIPTOR ConflictingDescriptor)
enum _IOP_TRANSFER_TYPE * PIOP_TRANSFER_TYPE
enum _COMPLETION_PACKET_TYPE COMPLETION_PACKET_TYPE
VOID NTAPI IoInitFileSystemImplementation(VOID)
VOID IopStopBootLog(VOID)
VOID NTAPI IopCloseFile(IN PEPROCESS Process OPTIONAL, IN PVOID Object, IN ACCESS_MASK GrantedAccess, IN ULONG ProcessHandleCount, IN ULONG SystemHandleCount)
VOID NTAPI IopReinitializeDrivers(VOID)
struct _DEVICETREE_TRAVERSE_CONTEXT DEVICETREE_TRAVERSE_CONTEXT
VOID IoInitCancelHandling(VOID)
NTSTATUS PiIrpQueryStopDevice(_In_ PDEVICE_NODE DeviceNode)
struct _FILE_OBJECT_EXTENSION * PFILE_OBJECT_EXTENSION
NTSTATUS NTAPI IoSetIoCompletion(IN PVOID IoCompletion, IN PVOID KeyContext, IN PVOID ApcContext, IN NTSTATUS IoStatus, IN ULONG_PTR IoStatusInformation, IN BOOLEAN Quota)
NTSTATUS PiIrpStopDevice(_In_ PDEVICE_NODE DeviceNode)
PIO_BUS_TYPE_GUID_LIST PnpBusTypeGuidList
NTSTATUS IopQueueTargetDeviceEvent(_In_ const GUID *Guid, _In_ PUNICODE_STRING DeviceIds)
PDRIVER_OBJECT IopRootDriverObject
NTSTATUS NTAPI IopGetFileInformation(IN PFILE_OBJECT FileObject, IN ULONG Length, IN FILE_INFORMATION_CLASS FileInfoClass, OUT PVOID Buffer, OUT PULONG ReturnedLength)
NTSTATUS NTAPI IopMountVolume(IN PDEVICE_OBJECT DeviceObject, IN BOOLEAN AllowRawMount, IN BOOLEAN DeviceIsLocked, IN BOOLEAN Alertable, OUT PVPB *Vpb)
VOID FASTCALL IopInitTimerImplementation(VOID)
NTSTATUS NTAPI IopReassignSystemRoot(IN PLOADER_PARAMETER_BLOCK LoaderBlock, OUT PANSI_STRING NtBootPath)
GENERAL_LOOKASIDE IopMdlLookasideList
NTSTATUS IoDestroyDriverList(VOID)
BOOLEAN IopVerifyDiskSignature(_In_ PDRIVE_LAYOUT_INFORMATION_EX DriveLayout, _In_ PARC_DISK_SIGNATURE ArcDiskSignature, _Out_ PULONG Signature)
struct _IO_UNLOAD_SAFE_COMPLETION_CONTEXT IO_UNLOAD_SAFE_COMPLETION_CONTEXT
struct _DRIVER_REINIT_ITEM * PDRIVER_REINIT_ITEM
VOID NTAPI IopDereferenceVpbAndFree(IN PVPB Vpb)
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.
PDEVICE_OBJECT NTAPI IopGetDeviceAttachmentBase(IN PDEVICE_OBJECT DeviceObject)
NTSTATUS(* DEVICETREE_TRAVERSE_ROUTINE)(IN PDEVICE_NODE DeviceNode, IN PVOID Context)
struct _IO_WORKITEM IO_WORKITEM
VOID PiInitializeNotifications(VOID)
NTSTATUS PiIrpQueryDeviceText(_In_ PDEVICE_NODE DeviceNode, _In_ LCID LocaleId, _In_ DEVICE_TEXT_TYPE Type, _Out_ PWSTR *DeviceText)
VOID NTAPI IopDeleteDevice(IN PVOID ObjectBody)
PDEVICE_NODE IopRootDeviceNode
HAL_DISPATCH _HalDispatchTable
NTSTATUS NTAPI PnpRegMultiSzToUnicodeStrings(IN PKEY_VALUE_FULL_INFORMATION KeyValueInformation, OUT PUNICODE_STRING *UnicodeStringList, OUT PULONG UnicodeStringCount)
VOID NTAPI IopDeleteIoCompletion(PVOID ObjectBody)
struct _IOP_MINI_COMPLETION_PACKET * PIOP_MINI_COMPLETION_PACKET
BOOLEAN RawFsIsRawFileSystemDeviceObject(IN PDEVICE_OBJECT DeviceObject)
BOOLEAN NTAPI PpInitSystem(VOID)
struct _ERROR_LOG_ENTRY ERROR_LOG_ENTRY
NTSTATUS PiIrpQueryDeviceRelations(_In_ PDEVICE_NODE DeviceNode, _In_ DEVICE_RELATION_TYPE Type)
_IOP_DEVICE_LIST_OPERATION
GENERIC_MAPPING IopCompletionMapping
NTSTATUS PiPerformSyncDeviceAction(_In_ PDEVICE_OBJECT DeviceObject, _In_ DEVICE_ACTION Action)
Perfom a device operation synchronously via PiQueueDeviceAction.
VOID NTAPI IopDeleteFile(IN PVOID ObjectBody)
struct _DEVICETREE_TRAVERSE_CONTEXT * PDEVICETREE_TRAVERSE_CONTEXT
NTSTATUS NTAPI IopParseDevice(IN PVOID ParseObject, IN PVOID ObjectType, IN OUT PACCESS_STATE AccessState, IN KPROCESSOR_MODE AccessMode, IN ULONG Attributes, IN OUT PUNICODE_STRING CompleteName, IN OUT PUNICODE_STRING RemainingName, IN OUT PVOID Context, IN PSECURITY_QUALITY_OF_SERVICE SecurityQos OPTIONAL, OUT PVOID *Object)
VOID IopBootLog(IN PUNICODE_STRING DriverName, IN BOOLEAN Success)
struct _OPEN_PACKET OPEN_PACKET
VOID NTAPI IopReadyDeviceObjects(IN PDRIVER_OBJECT Driver)
NTSTATUS NTAPI IopCreateArcNames(IN PLOADER_PARAMETER_BLOCK LoaderBlock)
enum _IOP_DEVICE_LIST_OPERATION IOP_DEVICE_LIST_OPERATION
struct _IO_INTERRUPT IO_INTERRUPT
enum _COMPLETION_PACKET_TYPE * PCOMPLETION_PACKET_TYPE
struct _RESERVE_IRP_ALLOCATOR * PRESERVE_IRP_ALLOCATOR
RESERVE_IRP_ALLOCATOR IopReserveIrpAllocator
VOID IoInitShutdownNotification(VOID)
VOID PiNotifyHardwareProfileChange(_In_ LPCGUID Event)
Delivers the event to all drivers subscribed to EventCategoryHardwareProfileChange PnP event.
struct _DRIVER_REINIT_ITEM DRIVER_REINIT_ITEM
NTSTATUS PnpRootCreateDeviceObject(OUT PDEVICE_OBJECT *DeviceObject)
PULONG MinorVersion OPTIONAL
PDEVICE_NODE FirstDeviceNode
DEVICETREE_TRAVERSE_ROUTINE Action
PDRIVER_OBJECT DriverObject
PDRIVER_REINITIALIZE ReinitRoutine
CHAR FileObjectBody[sizeof(FILE_OBJECT)]
OBJECT_HEADER ObjectHeader
PDEVICE_OBJECT DeviceObject
PDRIVER_OBJECT DriverObject
IO_REMOVE_LOCK_DBG_BLOCK Dbg
IO_REMOVE_LOCK_COMMON_BLOCK Common
PDEVICE_OBJECT TopDeviceObjectHint
PDRIVER_FS_NOTIFICATION FSDNotificationProc
LIST_ENTRY FsChangeNotifyList
PDRIVER_OBJECT DriverObject
ULONG_PTR IoStatusInformation
struct _IO_STACK_LOCATION * CurrentStackLocation
KINTERRUPT FirstInterrupt
PIO_COMPLETION_ROUTINE CompletionRoutine
PDEVICE_OBJECT DeviceObject
PIO_WORKITEM_ROUTINE WorkerRoutine
PDEVICE_OBJECT DeviceObject
LARGE_INTEGER AllocationSize
OBJECT_ATTRIBUTES OriginalAttributes
PFILE_BASIC_INFORMATION BasicInformation
PVOID ExtraCreateParameters
PFILE_NETWORK_OPEN_INFORMATION NetworkInformation
CREATE_FILE_TYPE CreateFileType
PDUMMY_FILE_OBJECT LocalFileObject
PDEVICE_OBJECT TopDeviceObjectHint
BOOLEAN TraversedMountPoint
PFILE_OBJECT RelatedFileObject
volatile LONG ReserveIrpInUse
PDEVICE_OBJECT DeviceObject
_Must_inspect_result_ _In_ WDFCOLLECTION _In_ WDFOBJECT Object
_Must_inspect_result_ _In_ WDFDMAENABLER _In_ _In_opt_ PWDF_OBJECT_ATTRIBUTES Attributes
_Must_inspect_result_ _In_ WDFDRIVER Driver
_In_ PDEVICE_OBJECT DeviceObject
_In_ WDFDEVICE _Out_ PWDF_DEVICE_STATE DeviceState
_Must_inspect_result_ _In_ WDFDEVICE _In_ ULONG _In_ ACCESS_MASK DesiredAccess
_Must_inspect_result_ _In_ WDFDEVICE _In_ DEVICE_REGISTRY_PROPERTY _In_ _Strict_type_match_ POOL_TYPE PoolType
_In_ WDFREQUEST _In_ WDFFILEOBJECT FileObject
_Must_inspect_result_ _In_ WDFDEVICE _In_ PCUNICODE_STRING SymbolicLinkName
_Must_inspect_result_ _In_ WDFDEVICE _In_ PCUNICODE_STRING KeyName
_Must_inspect_result_ _In_ WDFDEVICE _In_ DEVICE_REGISTRY_PROPERTY _In_ ULONG BufferLength
_In_ UCHAR _In_ UCHAR MinorFunction
_Must_inspect_result_ _In_ PDRIVER_OBJECT _In_ PCUNICODE_STRING RegistryPath
_Must_inspect_result_ _In_ PDRIVER_OBJECT DriverObject
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_INTERRUPT_CONFIG _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_ WDFINTERRUPT * Interrupt
_In_ WDFIOTARGET _In_ _Strict_type_match_ WDF_IO_TARGET_SENT_IO_ACTION Action
_Must_inspect_result_ _In_ WDFOBJECT _In_ CONST GUID * Guid
_Must_inspect_result_ _In_ PWDFDEVICE_INIT _In_ PCUNICODE_STRING _In_ PCUNICODE_STRING _In_ LCID LocaleId
_Must_inspect_result_ _In_opt_ WDFKEY _In_ PCUNICODE_STRING _In_ ACCESS_MASK _In_ ULONG CreateOptions
_Must_inspect_result_ _In_opt_ WDFKEY ParentKey
_Must_inspect_result_ _In_ WDFKEY _In_ PCUNICODE_STRING ValueName
_In_ WDFREQUEST _In_ PIO_STACK_LOCATION Stack
_In_ WDFREQUEST _In_ NTSTATUS _In_ ULONG_PTR Information
_Must_inspect_result_ _In_ WDFIORESREQLIST _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_ WDFIORESLIST * ResourceList
_In_ WDFIORESREQLIST RequirementsList
_In_ USHORT _In_ ULONG _In_ PSOCKADDR _In_ PSOCKADDR _Reserved_ ULONG _In_opt_ PVOID _In_opt_ const WSK_CLIENT_CONNECTION_DISPATCH _In_opt_ PEPROCESS _In_opt_ PETHREAD _In_opt_ PSECURITY_DESCRIPTOR SecurityDescriptor
struct LOOKASIDE_ALIGN _GENERAL_LOOKASIDE GENERAL_LOOKASIDE
_In_opt_ PDEVICE_OBJECT _In_ ULONG _Outptr_result_nullonfailure_ _At_ * SymbolicLinkList(return==0, __drv_allocatesMem(Mem))) PZZWSTR *SymbolicLinkList
_In_ CONST GUID * InterfaceClassGuid
VOID(NTAPI * PDRIVER_REINITIALIZE)(_In_ struct _DRIVER_OBJECT *DriverObject, _In_opt_ PVOID Context, _In_ ULONG Count)
IO_COMPLETION_ROUTINE * PIO_COMPLETION_ROUTINE
DRIVER_FS_NOTIFICATION * PDRIVER_FS_NOTIFICATION
enum _DEVICE_TEXT_TYPE DEVICE_TEXT_TYPE
enum _CREATE_FILE_TYPE CREATE_FILE_TYPE
ULONG * PPNP_DEVICE_STATE
enum _DEVICE_RELATION_TYPE DEVICE_RELATION_TYPE
IO_WORKITEM_ROUTINE * PIO_WORKITEM_ROUTINE
_In_opt_ PVOID _In_opt_ PVOID SystemArgument1
_In_opt_ PVOID _In_opt_ PVOID _In_opt_ PVOID SystemArgument2
_In_ PEPROCESS _In_ KPROCESSOR_MODE AccessMode
_Inout_opt_ PVOID Parameter
_In_ KPROCESSOR_MODE PreviousMode
_In_opt_ PVOID _In_opt_ PUNICODE_STRING _In_ PSECURITY_DESCRIPTOR _In_ PACCESS_STATE AccessState
_In_ PSECURITY_SUBJECT_CONTEXT _In_ BOOLEAN _In_ ACCESS_MASK _In_ ACCESS_MASK _Outptr_opt_ PPRIVILEGE_SET _In_ PGENERIC_MAPPING _In_ KPROCESSOR_MODE _Out_ PACCESS_MASK GrantedAccess