📄 io.h
字号:
);
NTSTATUS
IopInitiatePnpIrp(
IN PDEVICE_OBJECT DeviceObject,
IN PIO_STATUS_BLOCK IoStatusBlock,
IN ULONG 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,
IN BOOLEAN BootDrivers
);
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,
IN BOOLEAN BootDrivers)
;
//
// Initialization Routines
//
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
);
//
// Device/Volume Routines
//
NTSTATUS
FASTCALL
IopInitializeDevice(
IN PDEVICE_NODE DeviceNode,
IN PDRIVER_OBJECT DriverObject
);
NTSTATUS
IopStartDevice(
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
IopDereferenceVpb(
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
);
//
// IRP Routines
//
NTSTATUS
NTAPI
IopCleanupFailedIrp(
IN PFILE_OBJECT FileObject,
IN PKEVENT EventObject,
IN PVOID Buffer OPTIONAL
);
VOID
NTAPI
IopAbortInterruptedIrp(
IN PKEVENT EventObject,
IN PIRP Irp
);
//
// Shutdown routines
//
VOID
IoInitShutdownNotification(
VOID
);
VOID
NTAPI
IoShutdownRegisteredDevices(
VOID
);
VOID
NTAPI
IoShutdownRegisteredFileSystems(
VOID
);
//
// Boot logging support
//
VOID
IopInitBootLog(
IN BOOLEAN StartBootLog
);
VOID
IopStartBootLog(
VOID
);
VOID
IopStopBootLog(
VOID
);
VOID
IopBootLog(
IN PUNICODE_STRING DriverName,
IN BOOLEAN Success
);
VOID
IopSaveBootLogToFile(
VOID
);
//
// I/O Cancellation Routines
//
VOID
NTAPI
IoCancelThreadIo(
IN PETHREAD Thread
);
VOID
IoInitCancelHandling(
VOID
);
//
// I/O Completion
//
VOID
NTAPI
IopCompleteRequest(
IN PKAPC Apc,
IN PKNORMAL_ROUTINE* NormalRoutine,
IN PVOID* NormalContext,
IN PVOID* SystemArgument1,
IN PVOID* SystemArgument2
);
//
// Error Logging Routines
//
VOID
NTAPI
IopInitErrorLog(
VOID
);
VOID
NTAPI
IopLogWorker(
IN PVOID Parameter
);
//
// Raw File System MiniDriver
//
BOOLEAN
RawFsIsRawFileSystemDeviceObject(
IN PDEVICE_OBJECT DeviceObject
);
NTSTATUS
NTAPI
RawFsDriverEntry(
IN PDRIVER_OBJECT DriverObject,
IN PUNICODE_STRING RegistryPath
);
//
// PnP Root MiniDriver
//
NTSTATUS
NTAPI
PnpRootDriverEntry(
IN PDRIVER_OBJECT DriverObject,
IN PUNICODE_STRING RegistryPath
);
NTSTATUS
PnpRootCreateDevice(
IN PUNICODE_STRING ServiceName,
IN OUT PDEVICE_OBJECT *PhysicalDeviceObject
);
//
// Driver Routines
//
VOID
FASTCALL
IopInitializeBootDrivers(
VOID
);
VOID
FASTCALL
IopInitializeSystemDrivers(
VOID
);
NTSTATUS
NTAPI
IopCreateDriver(IN PUNICODE_STRING DriverName OPTIONAL,
IN PDRIVER_INITIALIZE InitializationFunction,
IN PUNICODE_STRING RegistryPath,
IN PVOID DllBase,
IN ULONG SizeOfImage,
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
);
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
);
//
// File Routines
//
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 OPTIONAL,
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
);
//
// I/O Timer Routines
//
VOID
FASTCALL
IopInitTimerImplementation(
VOID
);
VOID
NTAPI
IopRemoveTimerFromTimerList(
IN PIO_TIMER Timer
);
//
// I/O Completion Routines
//
VOID
NTAPI
IopDeleteIoCompletion(
PVOID ObjectBody
);
//
// Global I/O Data
//
extern POBJECT_TYPE IoCompletionType;
extern PDEVICE_NODE IopRootDeviceNode;
extern ULONG IopTraceLevel;
extern NPAGED_LOOKASIDE_LIST IopMdlLookasideList;
extern GENERIC_MAPPING IopCompletionMapping;
extern GENERIC_MAPPING IopFileMapping;
extern POBJECT_TYPE _IoFileObjectType;
extern HAL_DISPATCH _HalDispatchTable;
extern LIST_ENTRY IopErrorLogListHead;
//
// Inlined Functions
//
#include "io_x.h"
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -