90 #if defined (ALLOC_PRAGMA) 91 #pragma alloc_text(INIT, IoInitSystem) 101 ULONG LargeIrpSize, SmallIrpSize, MdlSize;
155 DPRINT(
"Setting up lookaside for CPU: %x, PRCB: %p\n",
i, Prcb);
252 RtlZeroMemory(&ObjectTypeInitializer,
sizeof(ObjectTypeInitializer));
253 ObjectTypeInitializer.
Length =
sizeof(ObjectTypeInitializer);
263 &ObjectTypeInitializer,
271 &ObjectTypeInitializer,
283 &ObjectTypeInitializer,
294 &ObjectTypeInitializer,
306 &ObjectTypeInitializer,
324 &ObjectTypeInitializer,
354 DPRINT1(
"Failed to create \\Driver directory: 0x%lx\n",
Status);
371 DPRINT1(
"Failed to create \\FileSystem directory: 0x%lx\n",
Status);
388 DPRINT1(
"Failed to create \\FileSystem\\Filters directory: 0x%lx\n",
Status);
412 sprintf(
Buffer,
"\\ArcName\\%s", LoaderBlock->ArcBootDeviceName);
478 RtlInitEmptyAnsiString(&NtBootPath,
Buffer,
sizeof(
Buffer));
508 DPRINT1(
"IopInitializeReserveIrp failed!\n");
527 DPRINT1(
"IopCreateObjectTypes failed!\n");
534 DPRINT1(
"IopCreateRootDirectories failed!\n");
560 if (!
_strnicmp(LoaderBlock->ArcBootDeviceName,
"ramdisk(0)", 10))
580 DPRINT1(
"IopMarkBootPartition failed!\n");
587 #if !defined(_WINKD_) && defined(KDBG) 624 DPRINT1(
"RtlUnicodeStringToAnsiString failed: %lx\n",
Status);
638 DPRINT1(
"RtlAnsiStringToUnicodeString failed: %lx\n",
Status);
#define FILE_GENERIC_READ
IN PUNICODE_STRING IN POBJECT_ATTRIBUTES ObjectAttributes
ERESOURCE IopDatabaseResource
ERESOURCE IopSecurityResource
LIST_ENTRY DriverBootReinitListHead
NTSTATUS NTAPI ObCreateObjectType(IN PUNICODE_STRING TypeName, IN POBJECT_TYPE_INITIALIZER ObjectTypeInitializer, IN PVOID Reserved, OUT POBJECT_TYPE *ObjectType)
KSPIN_LOCK DriverBootReinitListLock
PDEVICE_OBJECT PhysicalDeviceObject
PDEVICE_NODE IopRootDeviceNode
NTSTATUS IopInitializePnpServices(IN PDEVICE_NODE DeviceNode)
#define IO_COMPLETION_ALL_ACCESS
POBJECT_TYPE IoControllerObjectType
UNICODE_STRING NtSystemRoot
LIST_ENTRY IopCdRomFileSystemQueueHead
LARGE_INTEGER IoWriteTransferCount
VOID NTAPI IopReinitializeDrivers(VOID)
VOID FASTCALL IoAssignDriveLetters(IN struct _LOADER_PARAMETER_BLOCK *LoaderBlock, IN PSTRING NtDeviceName, OUT PUCHAR NtSystemPath, OUT PSTRING NtSystemPathString)
VOID NTAPI IopCloseFile(IN PEPROCESS Process OPTIONAL, IN PVOID Object, IN ACCESS_MASK GrantedAccess, IN ULONG ProcessHandleCount, IN ULONG SystemHandleCount)
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)
LARGE_INTEGER IoReadTransferCount
ULONG IopNumTriageDumpDataBlocks
LIST_ENTRY IopTimerQueueHead
VOID NTAPI IopReinitializeBootDrivers(VOID)
POBJECT_TYPE IoAdapterObjectType
NTSTATUS ExInitializeResourceLite(PULONG res)
GENERIC_MAPPING IopFileMapping
PVOID IopTriageDumpDataBlocks[64]
BOOLEAN INIT_FUNCTION NTAPI IoInitSystem(IN PLOADER_PARAMETER_BLOCK LoaderBlock)
VOID NTAPI ObDereferenceObject(IN PVOID Object)
RESERVE_IRP_ALLOCATOR IopReserveIrpAllocator
BOOLEAN NTAPI KeSetTimerEx(IN OUT PKTIMER Timer, IN LARGE_INTEGER DueTime, IN LONG Period, IN PKDPC Dpc OPTIONAL)
POBJECT_TYPE IoDriverObjectType
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)
GENERAL_LOOKASIDE IoLargeIrpLookaside
ULONG IoWriteOperationCount
INIT_FUNCTION NTSTATUS NTAPI PsLocateSystemDll(VOID)
GENERIC_MAPPING IopCompletionMapping
NTSYSAPI VOID NTAPI RtlInitAnsiString(PANSI_STRING DestinationString, PCSZ SourceString)
ULONG IoReadOperationCount
struct LOOKASIDE_ALIGN _GENERAL_LOOKASIDE GENERAL_LOOKASIDE
INIT_FUNCTION NTSTATUS NTAPI IopStartRamdisk(IN PLOADER_PARAMETER_BLOCK LoaderBlock)
#define sprintf(buf, format,...)
INIT_FUNCTION NTSTATUS NTAPI ApphelpCacheInitialize(VOID)
ERESOURCE IopDriverLoadResource
PP_LOOKASIDE_LIST PPLookasideList[16]
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
NTSTATUS NTAPI ObReferenceObjectByHandle(IN HANDLE Handle, IN ACCESS_MASK DesiredAccess, IN POBJECT_TYPE ObjectType, IN KPROCESSOR_MODE AccessMode, OUT PVOID *Object, OUT POBJECT_HANDLE_INFORMATION HandleInformation OPTIONAL)
NTSTATUS(* NTAPI)(IN PFILE_FULL_EA_INFORMATION EaBuffer, IN ULONG EaLength, OUT PULONG ErrorOffset)
BOOLEAN MaintainHandleCount
struct LOOKASIDE_ALIGN _GENERAL_LOOKASIDE * PGENERAL_LOOKASIDE
_Check_return_ _CRTIMP int __cdecl _strnicmp(_In_reads_or_z_(_MaxCount) const char *_Str1, _In_reads_or_z_(_MaxCount) const char *_Str2, _In_ size_t _MaxCount)
INIT_FUNCTION NTSTATUS NTAPI IopInitializePlugPlayServices(VOID)
LIST_ENTRY IopTapeFileSystemQueueHead
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)
BOOLEAN NTAPI IopInitializeReserveIrp(IN PRESERVE_IRP_ALLOCATOR ReserveIrpAllocator)
FORCEINLINE VOID KeInitializeSpinLock(_Out_ PKSPIN_LOCK SpinLock)
LIST_ENTRY IopNetworkFileSystemQueueHead
VOID NTAPI IopDeleteDevice(IN PVOID ObjectBody)
BOOLEAN NTAPI WmiInitialize(VOID)
LIST_ENTRY DriverReinitListHead
#define DO_SYSTEM_BOOT_PARTITION
GENERAL_LOOKASIDE IoCompletionPacketLookaside
KGUARDED_MUTEX PnpNotifyListLock
VOID INIT_FUNCTION NTAPI IopInitLookasideLists(VOID)
VOID NTAPI IopDeleteFile(IN PVOID ObjectBody)
INIT_FUNCTION VOID FASTCALL IopInitializeSystemDrivers(VOID)
NTSYSAPI NTSTATUS NTAPI RtlUnicodeStringToAnsiString(PANSI_STRING DestinationString, PUNICODE_STRING SourceString, BOOLEAN AllocateDestinationString)
OB_CLOSE_METHOD CloseProcedure
_Inout_ PFILE_OBJECT FileObject
GENERAL_LOOKASIDE IoSmallIrpLookaside
INIT_FUNCTION VOID FASTCALL IopInitializeBootDrivers(VOID)
BOOLEAN IoCountOperations
NTSTATUS IopEnumerateDevice(IN PDEVICE_OBJECT DeviceObject)
INIT_FUNCTION VOID NTAPI ExInitializeSystemLookasideList(IN PGENERAL_LOOKASIDE List, IN POOL_TYPE Type, IN ULONG Size, IN ULONG Tag, IN USHORT MaximumDepth, IN PLIST_ENTRY ListHead)
LIST_ENTRY IopDiskFileSystemQueueHead
#define FILE_GENERIC_EXECUTE
BOOLEAN INIT_FUNCTION NTAPI IopMarkBootPartition(IN PLOADER_PARAMETER_BLOCK LoaderBlock)
_In_opt_ PVOID _In_opt_ PVOID SystemArgument1
_In_ LARGE_INTEGER _In_opt_ PKDPC Dpc
#define NT_SUCCESS(StatCode)
INIT_FUNCTION NTSTATUS NTAPI IopReassignSystemRoot(IN PLOADER_PARAMETER_BLOCK LoaderBlock, OUT PANSI_STRING NtBootPath)
LIST_ENTRY PnpNotifyListHead
OB_PARSE_METHOD ParseProcedure
struct _CONTROLLER_OBJECT CONTROLLER_OBJECT
NTSYSAPI VOID NTAPI RtlFreeUnicodeString(PUNICODE_STRING UnicodeString)
VOID NTAPI IopDeleteIoCompletion(PVOID ObjectBody)
BOOLEAN NTAPI IoInitializeCrashDump(IN HANDLE PageFileHandle)
NTSTATUS NTAPI NtClose(IN HANDLE Handle)
#define OBJ_CASE_INSENSITIVE
#define FILE_READ_ATTRIBUTES
struct _GENERAL_LOOKASIDE * L
LARGE_INTEGER IoOtherTransferCount
#define ExAllocatePoolWithTag(hernya, size, tag)
NTSYSAPI NTSTATUS NTAPI ZwOpenFile(_Out_ PHANDLE FileHandle, _In_ ACCESS_MASK DesiredAccess, _In_ POBJECT_ATTRIBUTES ObjectAttributes, _Out_ PIO_STATUS_BLOCK IoStatusBlock, _In_ ULONG ShareAccess, _In_ ULONG OpenOptions)
struct _DEVICE_OBJECT DEVICE_OBJECT
#define FILE_NON_DIRECTORY_FILE
struct _DRIVER_OBJECT DRIVER_OBJECT
POBJECT_TYPE IoFileObjectType
KSPIN_LOCK DriverReinitListLock
PLOADER_PARAMETER_BLOCK IopLoaderBlock
_In_opt_ PVOID _In_opt_ PVOID _In_opt_ PVOID SystemArgument2
KSPIN_LOCK IopLogListLock
#define FILE_GENERIC_WRITE
NTSTATUS NTAPI NtCreateDirectoryObject(OUT PHANDLE DirectoryHandle, IN ACCESS_MASK DesiredAccess, IN POBJECT_ATTRIBUTES ObjectAttributes)
VOID FASTCALL KeInitializeGuardedMutex(OUT PKGUARDED_MUTEX GuardedMutex)
GENERIC_MAPPING GenericMapping
struct _GENERAL_LOOKASIDE * P
BOOLEAN NTAPI KdInitSystem(ULONG Reserved, PLOADER_PARAMETER_BLOCK LoaderBlock)
BOOLEAN INIT_FUNCTION NTAPI IopCreateObjectTypes(VOID)
VOID NTAPI IopTimerDispatch(IN PKDPC Dpc, IN PVOID DeferredContext, IN PVOID SystemArgument1, IN PVOID SystemArgument2)
INIT_FUNCTION NTSTATUS NTAPI IopCreateArcNames(IN PLOADER_PARAMETER_BLOCK LoaderBlock)
NTSYSAPI NTSTATUS NTAPI RtlAnsiStringToUnicodeString(PUNICODE_STRING DestinationString, PANSI_STRING SourceString, BOOLEAN AllocateDestinationString)
PKPRCB KiProcessorBlock[]
#define InitializeListHead(ListHead)
OB_SECURITY_METHOD SecurityProcedure
#define DIRECTORY_ALL_ACCESS
static OUT PIO_STATUS_BLOCK IoStatusBlock
KSPIN_LOCK IoStatisticsLock
KSPIN_LOCK ShutdownListLock
BOOLEAN INIT_FUNCTION NTAPI IopCreateRootDirectories(VOID)
#define ObReferenceObject
OB_QUERYNAME_METHOD QueryNameProcedure
NTSYSAPI VOID NTAPI RtlInitUnicodeString(PUNICODE_STRING DestinationString, PCWSTR SourceString)
#define RtlZeroMemory(Destination, Length)
LIST_ENTRY IopFsNotifyChangeQueueHead
_In_ PFCB _In_ PCD_NAME DirName
#define InitializeObjectAttributes(p, n, a, r, s)
NTSTATUS NTAPI IopQueryName(IN PVOID ObjectBody, IN BOOLEAN HasName, OUT POBJECT_NAME_INFORMATION ObjectNameInfo, IN ULONG Length, OUT PULONG ReturnLength, IN KPROCESSOR_MODE PreviousMode)
VOID NTAPI IopDeleteDriver(IN PVOID ObjectBody)
ULONG IoOtherOperationCount
VOID NTAPI KeInitializeDpc(IN PKDPC Dpc, IN PKDEFERRED_ROUTINE DeferredRoutine, IN PVOID DeferredContext)
LIST_ENTRY IopErrorLogListHead
OB_DELETE_METHOD DeleteProcedure
GENERAL_LOOKASIDE IopMdlLookasideList
PDEVICE_OBJECT IopErrorLogObject
POBJECT_TYPE IoCompletionType
POBJECT_TYPE IoDeviceObjectType
LIST_ENTRY ShutdownListHead
ULONG DefaultNonPagedPoolCharge
VOID NTAPI KeBugCheckEx(_In_ ULONG BugCheckCode, _In_ ULONG_PTR BugCheckParameter1, _In_ ULONG_PTR BugCheckParameter2, _In_ ULONG_PTR BugCheckParameter3, _In_ ULONG_PTR BugCheckParameter4)
LIST_ENTRY LastChanceShutdownListHead
VOID NTAPI KeInitializeTimerEx(OUT PKTIMER Timer, IN TIMER_TYPE Type)
LIST_ENTRY ExSystemLookasideListHead
_In_opt_ PVOID DeferredContext