96 ULONG LargeIrpSize, SmallIrpSize, MdlSize;
150 DPRINT(
"Setting up lookaside for CPU: %x, PRCB: %p\n",
i, Prcb);
247 RtlZeroMemory(&ObjectTypeInitializer,
sizeof(ObjectTypeInitializer));
248 ObjectTypeInitializer.
Length =
sizeof(ObjectTypeInitializer);
258 &ObjectTypeInitializer,
266 &ObjectTypeInitializer,
278 &ObjectTypeInitializer,
289 &ObjectTypeInitializer,
301 &ObjectTypeInitializer,
319 &ObjectTypeInitializer,
349 DPRINT1(
"Failed to create \\Driver directory: 0x%lx\n",
Status);
366 DPRINT1(
"Failed to create \\FileSystem directory: 0x%lx\n",
Status);
383 DPRINT1(
"Failed to create \\FileSystem\\Filters directory: 0x%lx\n",
Status);
407 sprintf(
Buffer,
"\\ArcName\\%s", LoaderBlock->ArcBootDeviceName);
473 RtlInitEmptyAnsiString(&NtBootPath,
Buffer,
sizeof(
Buffer));
504 DPRINT1(
"IopInitializeReserveIrp failed!\n");
523 DPRINT1(
"IopCreateObjectTypes failed!\n");
530 DPRINT1(
"IopCreateRootDirectories failed!\n");
563 if (!
_strnicmp(LoaderBlock->ArcBootDeviceName,
"ramdisk(0)", 10))
583 DPRINT1(
"IopMarkBootPartition failed!\n");
591 #if !defined(_WINKD_) && defined(KDBG) 625 DPRINT1(
"RtlUnicodeStringToAnsiString failed: %lx\n",
Status);
639 DPRINT1(
"RtlAnsiStringToUnicodeString failed: %lx\n",
Status);
#define FILE_GENERIC_READ
IN PUNICODE_STRING IN POBJECT_ATTRIBUTES ObjectAttributes
ERESOURCE IopDatabaseResource
NTSTATUS NTAPI IopReassignSystemRoot(IN PLOADER_PARAMETER_BLOCK LoaderBlock, OUT PANSI_STRING NtBootPath)
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
#define IO_COMPLETION_ALL_ACCESS
POBJECT_TYPE IoControllerObjectType
_Must_inspect_result_ _In_ PWDF_DPC_CONFIG _In_ PWDF_OBJECT_ATTRIBUTES _Out_ WDFDPC * Dpc
VOID NTAPI IopInitLookasideLists(VOID)
UNICODE_STRING NtSystemRoot
LIST_ENTRY IopCdRomFileSystemQueueHead
LARGE_INTEGER IoWriteTransferCount
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.
#define OBJ_CASE_INSENSITIVE
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]
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
GENERIC_MAPPING IopCompletionMapping
NTSYSAPI VOID NTAPI RtlInitAnsiString(PANSI_STRING DestinationString, PCSZ SourceString)
ULONG IoReadOperationCount
struct LOOKASIDE_ALIGN _GENERAL_LOOKASIDE GENERAL_LOOKASIDE
VOID FASTCALL IopInitializeSystemDrivers(VOID)
#define sprintf(buf, format,...)
NTSTATUS NTAPI ApphelpCacheInitialize(VOID)
ERESOURCE IopDriverLoadResource
PP_LOOKASIDE_LIST PPLookasideList[16]
_Must_inspect_result_ _In_ PWDFDEVICE_INIT _In_opt_ PCUNICODE_STRING DeviceName
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
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
VOID NTAPI IopDeleteFile(IN PVOID ObjectBody)
NTSYSAPI NTSTATUS NTAPI RtlUnicodeStringToAnsiString(PANSI_STRING DestinationString, PUNICODE_STRING SourceString, BOOLEAN AllocateDestinationString)
VOID FASTCALL IopInitializeBootDrivers(VOID)
OB_CLOSE_METHOD CloseProcedure
VOID NTAPI ExInitializeSystemLookasideList(IN PGENERAL_LOOKASIDE List, IN POOL_TYPE Type, IN ULONG Size, IN ULONG Tag, IN USHORT MaximumDepth, IN PLIST_ENTRY ListHead)
_In_ WDFREQUEST _In_ WDFFILEOBJECT FileObject
GENERAL_LOOKASIDE IoSmallIrpLookaside
BOOLEAN IoCountOperations
LIST_ENTRY IopDiskFileSystemQueueHead
#define FILE_GENERIC_EXECUTE
_In_opt_ PVOID _In_opt_ PVOID SystemArgument1
#define NT_SUCCESS(StatCode)
BOOLEAN NTAPI IopMarkBootPartition(IN PLOADER_PARAMETER_BLOCK LoaderBlock)
#define ObDereferenceObject
NTSTATUS NTAPI IopInitializePlugPlayServices(VOID)
OB_PARSE_METHOD ParseProcedure
BOOLEAN NTAPI IoInitSystem(IN PLOADER_PARAMETER_BLOCK LoaderBlock)
struct _CONTROLLER_OBJECT CONTROLLER_OBJECT
BOOLEAN NTAPI IopCreateRootDirectories(VOID)
NTSTATUS NTAPI IopCreateArcNames(IN PLOADER_PARAMETER_BLOCK LoaderBlock)
NTSYSAPI VOID NTAPI RtlFreeUnicodeString(PUNICODE_STRING UnicodeString)
#define _strnicmp(_String1, _String2, _MaxCount)
VOID NTAPI IopDeleteIoCompletion(PVOID ObjectBody)
BOOLEAN NTAPI IoInitializeCrashDump(IN HANDLE PageFileHandle)
NTSTATUS NTAPI NtClose(IN HANDLE Handle)
#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
BOOLEAN PnPBootDriversInitialized
#define FILE_NON_DIRECTORY_FILE
struct _DRIVER_OBJECT DRIVER_OBJECT
POBJECT_TYPE IoFileObjectType
KSPIN_LOCK DriverReinitListLock
NTSTATUS NTAPI PsLocateSystemDll(VOID)
PLOADER_PARAMETER_BLOCK IopLoaderBlock
_In_opt_ PVOID _In_opt_ PVOID _In_opt_ PVOID SystemArgument2
KSPIN_LOCK IopLogListLock
#define FILE_GENERIC_WRITE
_Must_inspect_result_ _In_opt_ PFLT_INSTANCE _Out_ PHANDLE FileHandle
NTSTATUS NTAPI NtCreateDirectoryObject(OUT PHANDLE DirectoryHandle, IN ACCESS_MASK DesiredAccess, IN POBJECT_ATTRIBUTES ObjectAttributes)
GENERIC_MAPPING GenericMapping
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
struct _GENERAL_LOOKASIDE * P
VOID NTAPI IopTimerDispatch(IN PKDPC Dpc, IN PVOID DeferredContext, IN PVOID SystemArgument1, IN PVOID SystemArgument2)
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
VOID KdbpCliInit(VOID)
Called when KDB is initialized.
static OUT PIO_STATUS_BLOCK IoStatusBlock
BOOLEAN NTAPI KdInitSystem(_In_ ULONG BootPhase, _In_opt_ PLOADER_PARAMETER_BLOCK LoaderBlock)
KSPIN_LOCK IoStatisticsLock
KSPIN_LOCK ShutdownListLock
#define ObReferenceObject
BOOLEAN NTAPI IopCreateObjectTypes(VOID)
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 IopStartRamdisk(IN PLOADER_PARAMETER_BLOCK LoaderBlock)
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
VOID PiInitializeNotifications(VOID)
_In_opt_ PVOID DeferredContext