Data Structures |
| struct | PIOP_MINI_COMPLETION_PACKET |
| struct | PIO_UNLOAD_SAFE_COMPLETION_CONTEXT |
| struct | IO_WORKITEM |
| struct | PIO_INTERRUPT |
| struct | PERROR_LOG_ENTRY |
| struct | PELF_API_MSG |
| struct | PEXTENDED_IO_REMOVE_LOCK |
| struct | PDUMMY_FILE_OBJECT |
| struct | POPEN_PACKET |
| struct | PLOAD_UNLOAD_PARAMS |
| struct | PDRIVER_INFORMATION |
| struct | PBOOT_DRIVER_NODE |
| struct | PIO_BUS_TYPE_GUID_LIST |
| struct | PSHUTDOWN_ENTRY |
| struct | PFS_CHANGE_NOTIFY_ENTRY |
| struct | PDRIVER_REINIT_ITEM |
| struct | PDEVICETREE_TRAVERSE_CONTEXT |
Defines |
| #define | _IO_DEBUG_ 0x01 |
| #define | IO_IRP_DEBUG 0x01 |
| #define | IO_FILE_DEBUG 0x02 |
| #define | IO_API_DEBUG 0x04 |
| #define | IO_CTL_DEBUG 0x08 |
| #define | IOTRACE(x,...) |
| #define | ENUM_ROOT L"\\Registry\\Machine\\System\\CurrentControlSet\\Enum" |
| #define | IO_METHOD_FROM_CTL_CODE(c) (c & 0x00000003) |
| #define | RD_NO_XIPROM_DESCRIPTOR 1 |
| #define | RD_NO_RAMDISK_DRIVER 2 |
| #define | RD_FSCTL_FAILED 3 |
| #define | RD_GUID_CONVERT_FAILED 4 |
| #define | RD_SYMLINK_CREATE_FAILED 5 |
| #define | IopAllocateMdlFromLookaside ObpAllocateObjectCreateInfoBuffer |
| #define | IopFreeMdlFromLookaside ObpFreeCapturedAttributes |
| #define | IsIrpSynchronous(Irp, FileObject) |
| #define | IoGetDevObjExtension(DeviceObject) |
| #define | IoGetDrvObjExtension(DriverObject) |
| #define | IopDeviceNodeSetFlag(DeviceNode, Flag) ((DeviceNode)->Flags |= (Flag)) |
| #define | IopDeviceNodeClearFlag(DeviceNode, Flag) ((DeviceNode)->Flags &= ~(Flag)) |
| #define | IopDeviceNodeHasFlag(DeviceNode, Flag) (((DeviceNode)->Flags & (Flag)) > 0) |
| #define | IopDeviceNodeSetUserFlag(DeviceNode, UserFlag) ((DeviceNode)->UserFlags |= (UserFlag)) |
| #define | IopDeviceNodeClearUserFlag(DeviceNode, UserFlag) ((DeviceNode)->UserFlags &= ~(UserFlag)) |
| #define | IopDeviceNodeHasUserFlag(DeviceNode, UserFlag) (((DeviceNode)->UserFlags & (UserFlag)) > 0) |
| #define | IopDeviceNodeSetProblem(DeviceNode, Problem) ((DeviceNode)->Problem |= (Problem)) |
| #define | IopDeviceNodeClearProblem(DeviceNode, Problem) ((DeviceNode)->Problem &= ~(Problem)) |
| #define | IopDeviceNodeHasProblem(DeviceNode, Problem) (((DeviceNode)->Problem & (Problem)) > 0) |
| #define | IopInitDeviceTreeTraverseContext(_DeviceTreeTraverseContext, _DeviceNode, _Action,_Context) |
| #define | IopIsValidPhysicalDeviceObject(PhysicalDeviceObject) |
Typedefs |
typedef enum
_IOP_DEVICE_LIST_OPERATION * | PIOP_DEVICE_LIST_OPERATION |
| typedef enum _IOP_TRANSFER_TYPE * | PIOP_TRANSFER_TYPE |
typedef enum
_COMPLETION_PACKET_TYPE * | PCOMPLETION_PACKET_TYPE |
| typedef NTSTATUS(* | DEVICETREE_TRAVERSE_ROUTINE )(IN PDEVICE_NODE DeviceNode, IN PVOID Context) |
Enumerations |
| enum | IOP_DEVICE_LIST_OPERATION { IopRemove,
IopAdd
} |
| enum | IOP_TRANSFER_TYPE { IopReadTransfer,
IopWriteTransfer,
IopOtherTransfer
} |
| enum | COMPLETION_PACKET_TYPE { IopCompletionPacketIrp,
IopCompletionPacketMini,
IopCompletionPacketQuota
} |
Functions |
| ULONG NTAPI | PnpDetermineResourceListSize (IN PCM_RESOURCE_LIST ResourceList) |
| NTSTATUS NTAPI | IopAssignDeviceResources (IN PDEVICE_NODE DeviceNode) |
| NTSTATUS NTAPI | IopFixupResourceListWithRequirements (IN PIO_RESOURCE_REQUIREMENTS_LIST RequirementsList, OUT PCM_RESOURCE_LIST *ResourceList) |
| NTSTATUS NTAPI | IopDetectResourceConflict (IN PCM_RESOURCE_LIST ResourceList, IN BOOLEAN Silent, OUT OPTIONAL PCM_PARTIAL_RESOURCE_DESCRIPTOR ConflictingDescriptor) |
| NTSTATUS NTAPI | PipCallDriverAddDevice (IN PDEVICE_NODE DeviceNode, IN BOOLEAN LoadDriver, IN PDRIVER_OBJECT DriverObject) |
| NTSTATUS NTAPI | IopInitializePlugPlayServices (VOID) |
| BOOLEAN NTAPI | PpInitSystem (VOID) |
| VOID | PnpInit2 (VOID) |
| VOID | IopInitDriverImplementation (VOID) |
| VOID | IopInitPnpNotificationImplementation (VOID) |
| VOID | IopNotifyPlugPlayNotification (IN PDEVICE_OBJECT DeviceObject, IN IO_NOTIFICATION_EVENT_CATEGORY EventCategory, IN LPCGUID Event, IN PVOID EventCategoryData1, IN PVOID EventCategoryData2) |
| NTSTATUS | IopGetSystemPowerDeviceObject (IN PDEVICE_OBJECT *DeviceObject) |
| PDEVICE_NODE NTAPI | PipAllocateDeviceNode (IN PDEVICE_OBJECT PhysicalDeviceObject) |
| NTSTATUS | IopCreateDeviceNode (IN PDEVICE_NODE ParentNode, IN PDEVICE_OBJECT PhysicalDeviceObject, IN PUNICODE_STRING ServiceName, OUT PDEVICE_NODE *DeviceNode) |
| NTSTATUS | IopFreeDeviceNode (IN PDEVICE_NODE DeviceNode) |
| NTSTATUS NTAPI | IopQueryDeviceCapabilities (PDEVICE_NODE DeviceNode, PDEVICE_CAPABILITIES DeviceCaps) |
| NTSTATUS NTAPI | IopSynchronousCall (IN PDEVICE_OBJECT DeviceObject, IN PIO_STACK_LOCATION IoStackLocation, OUT PVOID *Information) |
| NTSTATUS NTAPI | IopInitiatePnpIrp (IN PDEVICE_OBJECT DeviceObject, IN PIO_STATUS_BLOCK IoStatusBlock, IN UCHAR MinorFunction, IN PIO_STACK_LOCATION Stack) |
| PDEVICE_NODE FASTCALL | IopGetDeviceNode (IN PDEVICE_OBJECT DeviceObject) |
| NTSTATUS | IopActionConfigureChildServices (IN PDEVICE_NODE DeviceNode, IN PVOID Context) |
| NTSTATUS | IopActionInitChildServices (IN PDEVICE_NODE DeviceNode, IN PVOID Context) |
| NTSTATUS | IopEnumerateDevice (IN PDEVICE_OBJECT DeviceObject) |
| NTSTATUS | IoCreateDriverList (VOID) |
| NTSTATUS | IoDestroyDriverList (VOID) |
| NTSTATUS INIT_FUNCTION | IopInitPlugPlayEvents (VOID) |
| NTSTATUS | IopQueueTargetDeviceEvent (const GUID *Guid, PUNICODE_STRING DeviceIds) |
| NTSTATUS | IopInitializePnpServices (IN PDEVICE_NODE DeviceNode) |
| NTSTATUS NTAPI | IopOpenRegistryKeyEx (PHANDLE KeyHandle, HANDLE ParentKey, PUNICODE_STRING Name, ACCESS_MASK DesiredAccess) |
| NTSTATUS NTAPI | IopGetRegistryValue (IN HANDLE Handle, IN PWSTR ValueName, OUT PKEY_VALUE_FULL_INFORMATION *Information) |
| 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 | IopTraverseDeviceTree (PDEVICETREE_TRAVERSE_CONTEXT Context) |
| NTSTATUS NTAPI | IopUpdateRootKey (VOID) |
| NTSTATUS NTAPI | PiInitCacheGroupInformation (VOID) |
| USHORT NTAPI | PpInitGetGroupOrderIndex (IN HANDLE ServiceHandle) |
| USHORT NTAPI | PipGetDriverTagPriority (IN HANDLE ServiceHandle) |
| NTSTATUS NTAPI | PnpRegMultiSzToUnicodeStrings (IN PKEY_VALUE_FULL_INFORMATION KeyValueInformation, OUT PUNICODE_STRING *UnicodeStringList, OUT PULONG UnicodeStringCount) |
| BOOLEAN NTAPI | PnpRegSzToString (IN PWCHAR RegSzData, IN ULONG RegSzLength, OUT PUSHORT StringLength OPTIONAL) |
| NTSTATUS NTAPI | IopCreateArcNames (IN PLOADER_PARAMETER_BLOCK LoaderBlock) |
| NTSTATUS NTAPI | IopReassignSystemRoot (IN PLOADER_PARAMETER_BLOCK LoaderBlock, OUT PANSI_STRING NtBootPath) |
| BOOLEAN NTAPI | IoInitSystem (IN PLOADER_PARAMETER_BLOCK LoaderBlock) |
| BOOLEAN NTAPI | IopVerifyDiskSignature (IN PDRIVE_LAYOUT_INFORMATION_EX DriveLayout, IN PARC_DISK_SIGNATURE ArcDiskSignature, OUT PULONG Signature) |
| VOID NTAPI | IopReadyDeviceObjects (IN PDRIVER_OBJECT Driver) |
| NTSTATUS FASTCALL | IopInitializeDevice (IN PDEVICE_NODE DeviceNode, IN PDRIVER_OBJECT DriverObject) |
| NTSTATUS | IopStartDevice (IN PDEVICE_NODE DeviceNode) |
| NTSTATUS | IopStopDevice (IN PDEVICE_NODE DeviceNode) |
| NTSTATUS | IopRemoveDevice (IN PDEVICE_NODE DeviceNode) |
| PVPB NTAPI | IopCheckVpbMounted (IN POPEN_PACKET OpenPacket, IN PDEVICE_OBJECT DeviceObject, IN PUNICODE_STRING RemainingName, OUT PNTSTATUS Status) |
| NTSTATUS NTAPI | IopMountVolume (IN PDEVICE_OBJECT DeviceObject, IN BOOLEAN AllowRawMount, IN BOOLEAN DeviceIsLocked, IN BOOLEAN Alertable, OUT PVPB *Vpb) |
| PVOID | IoOpenSymlink (IN PVOID SymbolicLink) |
| PVOID | IoOpenFileOnDevice (IN PVOID SymbolicLink, IN PWCHAR Name) |
| NTSTATUS NTAPI | IopCreateVpb (IN PDEVICE_OBJECT DeviceObject) |
| VOID NTAPI | IopDereferenceVpbAndFree (IN PVPB Vpb) |
| VOID NTAPI | IoInitFileSystemImplementation (VOID) |
| VOID NTAPI | IoInitVpbImplementation (VOID) |
| NTSTATUS NTAPI | IopReferenceDeviceObject (IN PDEVICE_OBJECT DeviceObject) |
| VOID NTAPI | IopDereferenceDeviceObject (IN PDEVICE_OBJECT DeviceObject, IN BOOLEAN ForceUnload) |
| NTSTATUS NTAPI | IoGetRelatedTargetDevice (IN PFILE_OBJECT FileObject, OUT PDEVICE_OBJECT *DeviceObject) |
| VOID NTAPI | IopUnloadDevice (IN PDEVICE_OBJECT DeviceObject) |
| NTSTATUS NTAPI | IopCleanupFailedIrp (IN PFILE_OBJECT FileObject, IN PKEVENT EventObject, IN PVOID Buffer OPTIONAL) |
| VOID NTAPI | IopAbortInterruptedIrp (IN PKEVENT EventObject, IN PIRP Irp) |
| VOID | IoInitShutdownNotification (VOID) |
| VOID NTAPI | IoShutdownSystem (IN ULONG Phase) |
| VOID NTAPI | IopShutdownBaseFileSystems (IN PLIST_ENTRY ListHead) |
| VOID | IopInitBootLog (IN BOOLEAN StartBootLog) |
| VOID | IopStartBootLog (VOID) |
| VOID | IopStopBootLog (VOID) |
| VOID | IopBootLog (IN PUNICODE_STRING DriverName, IN BOOLEAN Success) |
| VOID | IopSaveBootLogToFile (VOID) |
| VOID NTAPI | IoCancelThreadIo (IN PETHREAD Thread) |
| VOID | IoInitCancelHandling (VOID) |
| VOID NTAPI | IopCompleteRequest (IN PKAPC Apc, IN PKNORMAL_ROUTINE *NormalRoutine, IN PVOID *NormalContext, IN PVOID *SystemArgument1, IN PVOID *SystemArgument2) |
| VOID NTAPI | IopInitErrorLog (VOID) |
| VOID NTAPI | IopLogWorker (IN PVOID Parameter) |
| BOOLEAN | RawFsIsRawFileSystemDeviceObject (IN PDEVICE_OBJECT DeviceObject) |
| NTSTATUS NTAPI | RawFsDriverEntry (IN PDRIVER_OBJECT DriverObject, IN PUNICODE_STRING RegistryPath) |
| NTSTATUS NTAPI | PnpRootDriverEntry (IN PDRIVER_OBJECT DriverObject, IN PUNICODE_STRING RegistryPath) |
| NTSTATUS | PnpRootCreateDevice (IN PUNICODE_STRING ServiceName, IN OPTIONAL PDRIVER_OBJECT DriverObject, OUT PDEVICE_OBJECT *PhysicalDeviceObject, OUT OPTIONAL PUNICODE_STRING FullInstancePath) |
| NTSTATUS | PnpRootRegisterDevice (IN PDEVICE_OBJECT DeviceObject) |
| VOID FASTCALL | IopInitializeBootDrivers (VOID) |
| VOID FASTCALL | IopInitializeSystemDrivers (VOID) |
| NTSTATUS NTAPI | IopCreateDriver (IN PUNICODE_STRING DriverName OPTIONAL, IN PDRIVER_INITIALIZE InitializationFunction, IN PUNICODE_STRING RegistryPath, PLDR_DATA_TABLE_ENTRY ModuleObject, OUT PDRIVER_OBJECT *pDriverObject) |
| VOID NTAPI | IopDeleteDriver (IN PVOID ObjectBody) |
| NTSTATUS FASTCALL | IopGetDriverObject (OUT PDRIVER_OBJECT *DriverObject, IN PUNICODE_STRING ServiceName, IN BOOLEAN FileSystem) |
| NTSTATUS FASTCALL | IopLoadServiceModule (IN PUNICODE_STRING ServiceName, OUT PLDR_DATA_TABLE_ENTRY *ModuleObject) |
| VOID NTAPI | IopLoadUnloadDriver (IN OUT PLOAD_UNLOAD_PARAMS LoadParams) |
| NTSTATUS FASTCALL | IopInitializeDriverModule (IN PDEVICE_NODE DeviceNode, IN PLDR_DATA_TABLE_ENTRY ModuleObject, IN PUNICODE_STRING ServiceName, IN BOOLEAN FileSystemDriver, OUT PDRIVER_OBJECT *DriverObject) |
| NTSTATUS FASTCALL | IopAttachFilterDrivers (IN PDEVICE_NODE DeviceNode, IN BOOLEAN Lower) |
| VOID NTAPI | IopReinitializeDrivers (VOID) |
| VOID NTAPI | IopReinitializeBootDrivers (VOID) |
| VOID NTAPI | IopDeleteDevice (IN PVOID ObjectBody) |
| 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) |
| 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) |
| VOID NTAPI | IopDeleteFile (IN PVOID ObjectBody) |
| NTSTATUS NTAPI | IopSecurityFile (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 | IopQueryNameFile (IN PVOID ObjectBody, IN BOOLEAN HasName, OUT POBJECT_NAME_INFORMATION ObjectNameInfo, IN ULONG Length, OUT PULONG ReturnLength, IN KPROCESSOR_MODE PreviousMode) |
| VOID NTAPI | IopCloseFile (IN PEPROCESS Process OPTIONAL, IN PVOID Object, IN ACCESS_MASK GrantedAccess, IN ULONG ProcessHandleCount, IN ULONG SystemHandleCount) |
| PVOID NTAPI | IoGetFileObjectFilterContext (IN PFILE_OBJECT FileObject) |
| NTSTATUS NTAPI | IoChangeFileObjectFilterContext (IN PFILE_OBJECT FileObject, IN PVOID FilterContext, IN BOOLEAN Define) |
| VOID FASTCALL | IopInitTimerImplementation (VOID) |
| VOID NTAPI | IopRemoveTimerFromTimerList (IN PIO_TIMER Timer) |
| VOID NTAPI | IopDeleteIoCompletion (PVOID ObjectBody) |
| NTSTATUS NTAPI | IopStartRamdisk (IN PLOADER_PARAMETER_BLOCK LoaderBlock) |
| NTSTATUS NTAPI | IopFetchConfigurationInformation (OUT PWSTR *SymbolicLinkList, IN GUID Guid, IN ULONG ExpectedInterfaces, IN PULONG Interfaces) |
| VOID NTAPI | IopStoreSystemPartitionInformation (IN PUNICODE_STRING NtSystemPartitionDeviceName, IN PUNICODE_STRING OsLoaderPathName) |
Variables |
| PIO_BUS_TYPE_GUID_LIST | IopBusTypeGuidList |
| POBJECT_TYPE | IoCompletionType |
| PDEVICE_NODE | IopRootDeviceNode |
| KSPIN_LOCK | IopDeviceTreeLock |
| ULONG | IopTraceLevel |
| GENERAL_LOOKASIDE | IopMdlLookasideList |
| GENERIC_MAPPING | IopCompletionMapping |
| GENERIC_MAPPING | IopFileMapping |
| POBJECT_TYPE | _IoFileObjectType |
| HAL_DISPATCH | _HalDispatchTable |
| LIST_ENTRY | IopErrorLogListHead |
| ULONG | IopNumTriageDumpDataBlocks |
| PVOID | IopTriageDumpDataBlocks [64] |
| PIO_BUS_TYPE_GUID_LIST | PnpBusTypeGuidList |
| PDRIVER_OBJECT | IopRootDriverObject |