97 ULONG LargeIrpSize, SmallIrpSize, MdlSize;
151 DPRINT(
"Setting up lookaside for CPU: %x, PRCB: %p\n",
i, Prcb);
248 RtlZeroMemory(&ObjectTypeInitializer,
sizeof(ObjectTypeInitializer));
249 ObjectTypeInitializer.
Length =
sizeof(ObjectTypeInitializer);
259 &ObjectTypeInitializer,
267 &ObjectTypeInitializer,
279 &ObjectTypeInitializer,
290 &ObjectTypeInitializer,
302 &ObjectTypeInitializer,
320 &ObjectTypeInitializer,
350 DPRINT1(
"Failed to create \\Driver directory: 0x%lx\n",
Status);
367 DPRINT1(
"Failed to create \\FileSystem directory: 0x%lx\n",
Status);
384 DPRINT1(
"Failed to create \\FileSystem\\Filters directory: 0x%lx\n",
Status);
408 sprintf(
Buffer,
"\\ArcName\\%s", LoaderBlock->ArcBootDeviceName);
474 RtlInitEmptyAnsiString(&NtBootPath,
Buffer,
sizeof(
Buffer));
505 DPRINT1(
"IopInitializeReserveIrp failed!\n");
524 DPRINT1(
"IopCreateObjectTypes failed!\n");
531 DPRINT1(
"IopCreateRootDirectories failed!\n");
564 if (!
_strnicmp(LoaderBlock->ArcBootDeviceName,
"ramdisk(0)", 10))
584 DPRINT1(
"IopMarkBootPartition failed!\n");
618 DPRINT1(
"RtlUnicodeStringToAnsiString failed: %lx\n",
Status);
632 DPRINT1(
"RtlAnsiStringToUnicodeString failed: %lx\n",
Status);
#define FILE_NON_DIRECTORY_FILE
VOID FASTCALL IoAssignDriveLetters(IN struct _LOADER_PARAMETER_BLOCK *LoaderBlock, IN PSTRING NtDeviceName, OUT PUCHAR NtSystemPath, OUT PSTRING NtSystemPathString)
_In_ PFCB _In_ PCD_NAME DirName
IN PUNICODE_STRING IN POBJECT_ATTRIBUTES ObjectAttributes
#define NT_SUCCESS(StatCode)
#define _strnicmp(_String1, _String2, _MaxCount)
VOID NTAPI KeInitializeDpc(IN PKDPC Dpc, IN PKDEFERRED_ROUTINE DeferredRoutine, IN PVOID DeferredContext)
struct _DEVICE_OBJECT DEVICE_OBJECT
#define ExAllocatePoolWithTag(hernya, size, tag)
NTSTATUS ExInitializeResourceLite(PULONG res)
#define DO_SYSTEM_BOOT_PARTITION
#define InitializeListHead(ListHead)
#define KeInitializeSpinLock(sl)
_Must_inspect_result_ _In_opt_ PFLT_INSTANCE _Out_ PHANDLE FileHandle
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
#define OBJ_CASE_INSENSITIVE
LIST_ENTRY IopErrorLogListHead
LIST_ENTRY DriverReinitListHead
BOOLEAN NTAPI IoInitSystem(IN PLOADER_PARAMETER_BLOCK LoaderBlock)
POBJECT_TYPE IoDeviceObjectType
VOID NTAPI IopInitLookasideLists(VOID)
BOOLEAN NTAPI IopCreateRootDirectories(VOID)
ULONG IoWriteOperationCount
LIST_ENTRY ShutdownListHead
BOOLEAN NTAPI IoInitializeCrashDump(IN HANDLE PageFileHandle)
POBJECT_TYPE IoControllerObjectType
GENERIC_MAPPING IopFileMapping
ERESOURCE IopDriverLoadResource
ERESOURCE IopSecurityResource
BOOLEAN IoCountOperations
BOOLEAN PnPBootDriversInitialized
POBJECT_TYPE IoFileObjectType
GENERAL_LOOKASIDE IoLargeIrpLookaside
POBJECT_TYPE IoAdapterObjectType
KSPIN_LOCK DriverBootReinitListLock
LARGE_INTEGER IoReadTransferCount
BOOLEAN NTAPI WmiInitialize(VOID)
ULONG IopNumTriageDumpDataBlocks
GENERAL_LOOKASIDE IoSmallIrpLookaside
KSPIN_LOCK IoStatisticsLock
BOOLEAN NTAPI IopMarkBootPartition(IN PLOADER_PARAMETER_BLOCK LoaderBlock)
LARGE_INTEGER IoWriteTransferCount
PVOID IopTriageDumpDataBlocks[64]
KSPIN_LOCK ShutdownListLock
LIST_ENTRY IopCdRomFileSystemQueueHead
ULONG IoOtherOperationCount
ERESOURCE IopDatabaseResource
LIST_ENTRY DriverBootReinitListHead
KSPIN_LOCK IopLogListLock
KSPIN_LOCK DriverReinitListLock
LARGE_INTEGER IoOtherTransferCount
GENERAL_LOOKASIDE IoCompletionPacketLookaside
PDEVICE_OBJECT IopErrorLogObject
LIST_ENTRY LastChanceShutdownListHead
VOID NTAPI IopTimerDispatch(IN PKDPC Dpc, IN PVOID DeferredContext, IN PVOID SystemArgument1, IN PVOID SystemArgument2)
LIST_ENTRY IopNetworkFileSystemQueueHead
GENERAL_LOOKASIDE IopMdlLookasideList
LIST_ENTRY IopDiskFileSystemQueueHead
PLOADER_PARAMETER_BLOCK IopLoaderBlock
LIST_ENTRY IopFsNotifyChangeQueueHead
ULONG IoReadOperationCount
BOOLEAN NTAPI IopCreateObjectTypes(VOID)
LIST_ENTRY IopTimerQueueHead
LIST_ENTRY IopTapeFileSystemQueueHead
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 ExSystemLookasideListHead
#define sprintf(buf, format,...)
#define IO_COMPLETION_ALL_ACCESS
static OUT PIO_STATUS_BLOCK IoStatusBlock
#define InitializeObjectAttributes(p, n, a, r, s)
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)
@ LookasideCompletionList
NTSYSAPI NTSTATUS NTAPI RtlUnicodeStringToAnsiString(PANSI_STRING DestinationString, PUNICODE_STRING SourceString, BOOLEAN AllocateDestinationString)
#define FILE_GENERIC_EXECUTE
#define FILE_READ_ATTRIBUTES
NTSYSAPI NTSTATUS NTAPI RtlAnsiStringToUnicodeString(PUNICODE_STRING DestinationString, PANSI_STRING SourceString, BOOLEAN AllocateDestinationString)
NTSYSAPI VOID NTAPI RtlInitUnicodeString(PUNICODE_STRING DestinationString, PCWSTR SourceString)
NTSTATUS NTAPI NtClose(IN HANDLE Handle)
NTSYSAPI VOID NTAPI RtlFreeUnicodeString(PUNICODE_STRING UnicodeString)
#define DIRECTORY_ALL_ACCESS
NTSYSAPI VOID NTAPI RtlInitAnsiString(PANSI_STRING DestinationString, PCSZ SourceString)
#define FILE_GENERIC_READ
#define FILE_GENERIC_WRITE
UNICODE_STRING NtSystemRoot
VOID NTAPI IopReinitializeBootDrivers(VOID)
@ PiActionEnumRootDevices
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)
BOOLEAN NTAPI IopInitializeReserveIrp(IN PRESERVE_IRP_ALLOCATOR ReserveIrpAllocator)
VOID FASTCALL IopInitializeSystemDrivers(VOID)
POBJECT_TYPE IoCompletionType
NTSTATUS NTAPI IopInitializePlugPlayServices(VOID)
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 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)
VOID FASTCALL IopInitializeBootDrivers(VOID)
NTSTATUS NTAPI IopStartRamdisk(IN PLOADER_PARAMETER_BLOCK LoaderBlock)
VOID NTAPI IopCloseFile(IN PEPROCESS Process OPTIONAL, IN PVOID Object, IN ACCESS_MASK GrantedAccess, IN ULONG ProcessHandleCount, IN ULONG SystemHandleCount)
VOID NTAPI IopReinitializeDrivers(VOID)
NTSTATUS NTAPI IopReassignSystemRoot(IN PLOADER_PARAMETER_BLOCK LoaderBlock, OUT PANSI_STRING NtBootPath)
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.
VOID PiInitializeNotifications(VOID)
VOID NTAPI IopDeleteDevice(IN PVOID ObjectBody)
PDEVICE_NODE IopRootDeviceNode
VOID NTAPI IopDeleteIoCompletion(PVOID ObjectBody)
GENERIC_MAPPING IopCompletionMapping
VOID NTAPI IopDeleteFile(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 IopCreateArcNames(IN PLOADER_PARAMETER_BLOCK LoaderBlock)
RESERVE_IRP_ALLOCATOR IopReserveIrpAllocator
PKPRCB KiProcessorBlock[]
POBJECT_TYPE IoDriverObjectType
NTSTATUS NTAPI NtCreateDirectoryObject(OUT PHANDLE DirectoryHandle, IN ACCESS_MASK DesiredAccess, IN POBJECT_ATTRIBUTES ObjectAttributes)
NTSTATUS NTAPI ObCreateObjectType(IN PUNICODE_STRING TypeName, IN POBJECT_TYPE_INITIALIZER ObjectTypeInitializer, IN PVOID Reserved, OUT POBJECT_TYPE *ObjectType)
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 ApphelpCacheInitialize(VOID)
NTSTATUS NTAPI PsLocateSystemDll(VOID)
VOID NTAPI KeBugCheckEx(_In_ ULONG BugCheckCode, _In_ ULONG_PTR BugCheckParameter1, _In_ ULONG_PTR BugCheckParameter2, _In_ ULONG_PTR BugCheckParameter3, _In_ ULONG_PTR BugCheckParameter4)
PDEVICE_OBJECT PhysicalDeviceObject
PP_LOOKASIDE_LIST PPLookasideList[16]
OB_CLOSE_METHOD CloseProcedure
OB_SECURITY_METHOD SecurityProcedure
GENERIC_MAPPING GenericMapping
OB_DELETE_METHOD DeleteProcedure
BOOLEAN MaintainHandleCount
OB_QUERYNAME_METHOD QueryNameProcedure
OB_PARSE_METHOD ParseProcedure
ULONG DefaultNonPagedPoolCharge
struct _GENERAL_LOOKASIDE * P
struct _GENERAL_LOOKASIDE * L
BOOLEAN NTAPI KeSetTimerEx(IN OUT PKTIMER Timer, IN LARGE_INTEGER DueTime, IN LONG Period, IN PKDPC Dpc OPTIONAL)
VOID NTAPI KeInitializeTimerEx(OUT PKTIMER Timer, IN TIMER_TYPE Type)
#define RtlZeroMemory(Destination, Length)
_In_ WDFREQUEST _In_ WDFFILEOBJECT FileObject
_Must_inspect_result_ _In_ PWDFDEVICE_INIT _In_opt_ PCUNICODE_STRING DeviceName
_Must_inspect_result_ _In_ PWDF_DPC_CONFIG _In_ PWDF_OBJECT_ATTRIBUTES _Out_ WDFDPC * Dpc
struct LOOKASIDE_ALIGN _GENERAL_LOOKASIDE GENERAL_LOOKASIDE
struct LOOKASIDE_ALIGN _GENERAL_LOOKASIDE * PGENERAL_LOOKASIDE
struct _DRIVER_OBJECT DRIVER_OBJECT
struct _CONTROLLER_OBJECT CONTROLLER_OBJECT
_In_opt_ PVOID _In_opt_ PVOID SystemArgument1
_In_opt_ PVOID DeferredContext
_In_opt_ PVOID _In_opt_ PVOID _In_opt_ PVOID SystemArgument2
#define ObDereferenceObject
#define ObReferenceObject