wine  6.0.1
About: Wine is an Open Source implementation of the MS Windows API on top of X, OpenGL, and Unix. Think of Wine as a compatibility layer for running Windows programs.
  Fossies Dox: wine-6.0.1.tar.xz  ("unofficial" and yet experimental doxygen-generated source code documentation)  

ntoskrnl.c File Reference
#include <stdarg.h>
#include <assert.h>
#include "ntstatus.h"
#include "windef.h"
#include "winsvc.h"
#include "winternl.h"
#include "excpt.h"
#include "winioctl.h"
#include "winbase.h"
#include "winreg.h"
#include "ntsecapi.h"
#include "ddk/csq.h"
#include "ddk/ntddk.h"
#include "ddk/ntifs.h"
#include "ddk/wdm.h"
#include "wine/server.h"
#include "wine/debug.h"
#include "wine/heap.h"
#include "wine/rbtree.h"
#include "wine/svcctl.h"
#include "ntoskrnl_private.h"
Include dependency graph for ntoskrnl.c:

Go to the source code of this file.

Data Structures

struct  _KSERVICE_TABLE_DESCRIPTOR
 
struct  wine_driver
 
struct  object_header
 
struct  dispatch_context
 
struct  _IO_WORKITEM
 
struct  generic_call_dpc_context
 

Macros

#define NONAMELESSUNION
 
#define NONAMELESSSTRUCT
 
#define WIN32_NO_STATUS
 
#define MAX_SERVICE_NAME   260
 

Typedefs

typedef struct _KSERVICE_TABLE_DESCRIPTOR KSERVICE_TABLE_DESCRIPTOR
 
typedef struct _KSERVICE_TABLE_DESCRIPTORPKSERVICE_TABLE_DESCRIPTOR
 
typedef NTSTATUS(* dispatch_func) (struct dispatch_context *context)
 
typedef struct _EX_PUSH_LOCK_WAIT_BLOCK * PEX_PUSH_LOCK_WAIT_BLOCK
 

Functions

LONG vectored_handler (EXCEPTION_POINTERS *ptrs)
 
static int wine_drivers_rb_compare (const void *key, const struct wine_rb_entry *entry)
 
static HANDLE get_device_manager (void)
 
static void free_kernel_object (void *obj)
 
voidalloc_kernel_object (POBJECT_TYPE type, HANDLE handle, SIZE_T size, LONG ref)
 
void ObDereferenceObject (void *obj)
 
void ObReferenceObject (void *obj)
 
POBJECT_TYPE ObGetObjectType (void *object)
 
NTSTATUS kernel_object_from_handle (HANDLE handle, POBJECT_TYPE type, void **ret)
 
NTSTATUS ObReferenceObjectByHandle (HANDLE handle, ACCESS_MASK access, POBJECT_TYPE type, KPROCESSOR_MODE mode, void **ptr, POBJECT_HANDLE_INFORMATION info)
 
NTSTATUS ObOpenObjectByPointer (void *obj, ULONG attr, ACCESS_STATE *access_state, ACCESS_MASK access, POBJECT_TYPE type, KPROCESSOR_MODE mode, HANDLE *handle)
 
static voidcreate_file_object (HANDLE handle)
 
static void cancel_completed_irp (DEVICE_OBJECT *device, IRP *irp)
 
static NTSTATUS dispatch_irp_completion (DEVICE_OBJECT *device, IRP *irp, void *context)
 
static void dispatch_irp (DEVICE_OBJECT *device, IRP *irp, struct dispatch_context *context)
 
static NTSTATUS dispatch_create (struct dispatch_context *context)
 
static NTSTATUS dispatch_close (struct dispatch_context *context)
 
static NTSTATUS dispatch_read (struct dispatch_context *context)
 
static NTSTATUS dispatch_write (struct dispatch_context *context)
 
static NTSTATUS dispatch_flush (struct dispatch_context *context)
 
static NTSTATUS dispatch_ioctl (struct dispatch_context *context)
 
static NTSTATUS dispatch_free (struct dispatch_context *context)
 
static NTSTATUS dispatch_cancel (struct dispatch_context *context)
 
static void set_service_status (SERVICE_STATUS_HANDLE handle, DWORD state, DWORD accepted)
 
static void unload_driver (struct wine_rb_entry *entry, void *context)
 
NTSTATUS wine_ntoskrnl_main_loop (HANDLE stop_event)
 
NTSTATUS IoAllocateDriverObjectExtension (PDRIVER_OBJECT DriverObject, PVOID ClientIdentificationAddress, ULONG DriverObjectExtensionSize, PVOID *DriverObjectExtension)
 
PVOID IoGetDriverObjectExtension (PDRIVER_OBJECT DriverObject, PVOID ClientIdentificationAddress)
 
void IoInitializeIrp (IRP *irp, USHORT size, CCHAR stack_size)
 
void IoReuseIrp (IRP *irp, NTSTATUS iostatus)
 
NTSTATUS IoInitializeTimer (PDEVICE_OBJECT DeviceObject, PIO_TIMER_ROUTINE TimerRoutine, PVOID Context)
 
void IoStartTimer (PDEVICE_OBJECT DeviceObject)
 
void IoStopTimer (PDEVICE_OBJECT DeviceObject)
 
PIRP IoAllocateIrp (CCHAR stack_size, BOOLEAN charge_quota)
 
void IoFreeIrp (IRP *irp)
 
PVOID IoAllocateErrorLogEntry (PVOID IoObject, UCHAR EntrySize)
 
PMDL IoAllocateMdl (PVOID va, ULONG length, BOOLEAN secondary, BOOLEAN charge_quota, IRP *irp)
 
void IoFreeMdl (PMDL mdl)
 
PIO_WORKITEM IoAllocateWorkItem (PDEVICE_OBJECT device)
 
void IoFreeWorkItem (PIO_WORKITEM work_item)
 
static void run_work_item_worker (TP_CALLBACK_INSTANCE *instance, void *context)
 
void IoQueueWorkItem (PIO_WORKITEM work_item, PIO_WORKITEM_ROUTINE worker, WORK_QUEUE_TYPE type, void *context)
 
DEVICE_OBJECTIoGetAttachedDevice (DEVICE_OBJECT *device)
 
void IoDetachDevice (DEVICE_OBJECT *device)
 
PDEVICE_OBJECT IoAttachDeviceToDeviceStack (DEVICE_OBJECT *source, DEVICE_OBJECT *target)
 
PIRP IoBuildDeviceIoControlRequest (ULONG code, PDEVICE_OBJECT device, PVOID in_buff, ULONG in_len, PVOID out_buff, ULONG out_len, BOOLEAN internal, PKEVENT event, PIO_STATUS_BLOCK iosb)
 
PIRP IoBuildAsynchronousFsdRequest (ULONG majorfunc, DEVICE_OBJECT *device, void *buffer, ULONG length, LARGE_INTEGER *startoffset, IO_STATUS_BLOCK *iosb)
 
PIRP IoBuildSynchronousFsdRequest (ULONG majorfunc, PDEVICE_OBJECT device, PVOID buffer, ULONG length, PLARGE_INTEGER startoffset, PKEVENT event, PIO_STATUS_BLOCK iosb)
 
static void build_driver_keypath (const WCHAR *name, UNICODE_STRING *keypath)
 
static NTSTATUS unhandled_irp (DEVICE_OBJECT *device, IRP *irp)
 
static void free_driver_object (void *obj)
 
NTSTATUS IoCreateDriver (UNICODE_STRING *name, PDRIVER_INITIALIZE init)
 
void IoDeleteDriver (DRIVER_OBJECT *driver_object)
 
NTSTATUS IoCreateDevice (DRIVER_OBJECT *driver, ULONG ext_size, UNICODE_STRING *name, DWORD type, ULONG characteristics, BOOLEAN exclusive, DEVICE_OBJECT **ret_device)
 
void IoDeleteDevice (DEVICE_OBJECT *device)
 
NTSTATUS IoCreateSymbolicLink (UNICODE_STRING *name, UNICODE_STRING *target)
 
NTSTATUS IoCreateUnprotectedSymbolicLink (UNICODE_STRING *name, UNICODE_STRING *target)
 
NTSTATUS IoDeleteSymbolicLink (UNICODE_STRING *name)
 
NTSTATUS IoGetDeviceInterfaces (const GUID *InterfaceClassGuid, PDEVICE_OBJECT PhysicalDeviceObject, ULONG Flags, PWSTR *SymbolicLinkList)
 
NTSTATUS IoGetDeviceObjectPointer (UNICODE_STRING *name, ACCESS_MASK access, PFILE_OBJECT *file, PDEVICE_OBJECT *device)
 
NTSTATUS IoCallDriver (DEVICE_OBJECT *device, IRP *irp)
 
NTSTATUS IofCallDriver (DEVICE_OBJECT *device, IRP *irp)
 
PDEVICE_OBJECT IoGetRelatedDeviceObject (PFILE_OBJECT obj)
 
PCONFIGURATION_INFORMATION IoGetConfigurationInformation (void)
 
void IoGetStackLimits (ULONG_PTR *low, ULONG_PTR *high)
 
NTSTATUS IoIsWdmVersionAvailable (UCHAR MajorVersion, UCHAR MinorVersion)
 
NTSTATUS IoQueryDeviceDescription (PINTERFACE_TYPE itype, PULONG bus, PCONFIGURATION_TYPE ctype, PULONG cnum, PCONFIGURATION_TYPE ptype, PULONG pnum, PIO_QUERY_DEVICE_ROUTINE callout, PVOID context)
 
void IoRegisterDriverReinitialization (PDRIVER_OBJECT obj, PDRIVER_REINITIALIZE reinit, PVOID context)
 
void IoRegisterBootDriverReinitialization (DRIVER_OBJECT *driver, PDRIVER_REINITIALIZE proc, void *ctx)
 
NTSTATUS IoRegisterShutdownNotification (PDEVICE_OBJECT obj)
 
void IoUnregisterShutdownNotification (PDEVICE_OBJECT obj)
 
NTSTATUS IoReportResourceForDetection (DRIVER_OBJECT *drv_obj, CM_RESOURCE_LIST *drv_list, ULONG drv_size, DEVICE_OBJECT *dev_obj, CM_RESOURCE_LIST *dev_list, ULONG dev_size, BOOLEAN *conflict)
 
NTSTATUS IoReportResourceUsage (UNICODE_STRING *name, DRIVER_OBJECT *drv_obj, CM_RESOURCE_LIST *drv_list, ULONG drv_size, DRIVER_OBJECT *dev_obj, CM_RESOURCE_LIST *dev_list, ULONG dev_size, BOOLEAN overwrite, BOOLEAN *conflict)
 
void IoCompleteRequest (IRP *irp, UCHAR priority_boost)
 
void IofCompleteRequest (IRP *irp, UCHAR priority_boost)
 
BOOLEAN IoCancelIrp (IRP *irp)
 
LONG NTOSKRNL_InterlockedCompareExchange (LONG volatile *dest, LONG xchg, LONG compare)
 
LONG NTOSKRNL_InterlockedDecrement (LONG volatile *dest)
 
LONG NTOSKRNL_InterlockedExchange (LONG volatile *dest, LONG val)
 
LONG NTOSKRNL_InterlockedExchangeAdd (LONG volatile *dest, LONG incr)
 
LONG NTOSKRNL_InterlockedIncrement (LONG volatile *dest)
 
PVOID ExAllocatePool (POOL_TYPE type, SIZE_T size)
 
PVOID ExAllocatePoolWithQuota (POOL_TYPE type, SIZE_T size)
 
PVOID ExAllocatePoolWithTag (POOL_TYPE type, SIZE_T size, ULONG tag)
 
PVOID ExAllocatePoolWithQuotaTag (POOL_TYPE type, SIZE_T size, ULONG tag)
 
NTSTATUS ExCreateCallback (PCALLBACK_OBJECT *obj, POBJECT_ATTRIBUTES attr, BOOLEAN create, BOOLEAN allow_multiple)
 
voidExRegisterCallback (PCALLBACK_OBJECT callback_object, PCALLBACK_FUNCTION callback_function, void *callback_context)
 
void ExUnregisterCallback (void *callback_registration)
 
void ExFreePool (void *ptr)
 
void ExFreePoolWithTag (void *ptr, ULONG tag)
 
static void initialize_lookaside_list (GENERAL_LOOKASIDE *lookaside, PALLOCATE_FUNCTION allocate, PFREE_FUNCTION free, ULONG type, SIZE_T size, ULONG tag)
 
void ExInitializeNPagedLookasideList (PNPAGED_LOOKASIDE_LIST lookaside, PALLOCATE_FUNCTION allocate, PFREE_FUNCTION free, ULONG flags, SIZE_T size, ULONG tag, USHORT depth)
 
void ExInitializePagedLookasideList (PPAGED_LOOKASIDE_LIST lookaside, PALLOCATE_FUNCTION allocate, PFREE_FUNCTION free, ULONG flags, SIZE_T size, ULONG tag, USHORT depth)
 
static void delete_lookaside_list (GENERAL_LOOKASIDE *lookaside)
 
void ExDeleteNPagedLookasideList (PNPAGED_LOOKASIDE_LIST lookaside)
 
void ExDeletePagedLookasideList (PPAGED_LOOKASIDE_LIST lookaside)
 
NTSTATUS ExInitializeZone (PZONE_HEADER Zone, ULONG BlockSize, PVOID InitialSegment, ULONG InitialSegmentSize)
 
BOOLEAN FsRtlIsNameInExpression (PUNICODE_STRING expression, PUNICODE_STRING name, BOOLEAN ignore, PWCH upcase)
 
NTSTATUS FsRtlRegisterUncProvider (PHANDLE MupHandle, PUNICODE_STRING RedirDevName, BOOLEAN MailslotsSupported)
 
static voidcreate_process_object (HANDLE handle)
 
PEPROCESS IoGetCurrentProcess (void)
 
NTSTATUS PsLookupProcessByProcessId (HANDLE processid, PEPROCESS *process)
 
HANDLE PsGetProcessId (PEPROCESS process)
 
HANDLE PsGetProcessInheritedFromUniqueProcessId (PEPROCESS process)
 
static voidcreate_thread_object (HANDLE handle)
 
PRKTHREAD KeGetCurrentThread (void)
 
NTSTATUS PsLookupThreadByThreadId (HANDLE threadid, PETHREAD *thread)
 
HANDLE PsGetThreadId (PETHREAD thread)
 
HANDLE PsGetThreadProcessId (PETHREAD thread)
 
LONG KeInsertQueue (PRKQUEUE Queue, PLIST_ENTRY Entry)
 
KAFFINITY KeQueryActiveProcessors (void)
 
ULONG KeQueryActiveProcessorCountEx (USHORT group_number)
 
ULONGLONG KeQueryInterruptTime (void)
 
void KeQuerySystemTime (LARGE_INTEGER *time)
 
void KeQueryTickCount (LARGE_INTEGER *count)
 
ULONG KeQueryTimeIncrement (void)
 
KPRIORITY KeSetPriorityThread (PKTHREAD Thread, KPRIORITY Priority)
 
void KeSetSystemAffinityThread (KAFFINITY affinity)
 
KAFFINITY KeSetSystemAffinityThreadEx (KAFFINITY affinity)
 
void KeRevertToUserAffinityThread (void)
 
void KeRevertToUserAffinityThreadEx (KAFFINITY affinity)
 
void IoRegisterFileSystem (PDEVICE_OBJECT DeviceObject)
 
NTSTATUS KeExpandKernelStackAndCalloutEx (PEXPAND_STACK_CALLOUT callout, void *parameter, SIZE_T size, BOOLEAN wait, void *context)
 
NTSTATUS KeExpandKernelStackAndCallout (PEXPAND_STACK_CALLOUT callout, void *parameter, SIZE_T size)
 
void IoUnregisterFileSystem (PDEVICE_OBJECT DeviceObject)
 
PVOID MmAllocateNonCachedMemory (SIZE_T size)
 
PVOID MmAllocateContiguousMemory (SIZE_T size, PHYSICAL_ADDRESS highest_valid_address)
 
PVOID MmAllocateContiguousMemorySpecifyCache (SIZE_T size, PHYSICAL_ADDRESS lowest_valid_address, PHYSICAL_ADDRESS highest_valid_address, PHYSICAL_ADDRESS BoundaryAddressMultiple, MEMORY_CACHING_TYPE CacheType)
 
PMDL MmAllocatePagesForMdl (PHYSICAL_ADDRESS lowaddress, PHYSICAL_ADDRESS highaddress, PHYSICAL_ADDRESS skipbytes, SIZE_T size)
 
void MmBuildMdlForNonPagedPool (MDL *mdl)
 
NTSTATUS MmCreateSection (HANDLE *handle, ACCESS_MASK access, OBJECT_ATTRIBUTES *attr, LARGE_INTEGER *size, ULONG protect, ULONG alloc_attr, HANDLE file, FILE_OBJECT *file_obj)
 
void MmFreeNonCachedMemory (void *addr, SIZE_T size)
 
BOOLEAN MmIsAddressValid (PVOID VirtualAddress)
 
PVOID MmMapIoSpace (PHYSICAL_ADDRESS PhysicalAddress, DWORD NumberOfBytes, DWORD CacheType)
 
void MmLockPagableSectionByHandle (PVOID ImageSectionHandle)
 
PVOID MmMapLockedPagesSpecifyCache (PMDLX MemoryDescriptorList, KPROCESSOR_MODE AccessMode, MEMORY_CACHING_TYPE CacheType, PVOID BaseAddress, ULONG BugCheckOnFailure, MM_PAGE_PRIORITY Priority)
 
void MmUnmapLockedPages (void *base, MDL *mdl)
 
void MmUnlockPagableImageSection (PVOID ImageSectionHandle)
 
PVOID MmPageEntireDriver (PVOID AddrInSection)
 
void MmProbeAndLockPages (PMDLX MemoryDescriptorList, KPROCESSOR_MODE AccessMode, LOCK_OPERATION Operation)
 
void MmResetDriverPaging (PVOID AddrInSection)
 
void MmUnlockPages (PMDLX MemoryDescriptorList)
 
void MmUnmapIoSpace (PVOID BaseAddress, SIZE_T NumberOfBytes)
 
NTSTATUS ObReferenceObjectByName (UNICODE_STRING *ObjectName, ULONG Attributes, ACCESS_STATE *AccessState, ACCESS_MASK DesiredAccess, POBJECT_TYPE ObjectType, KPROCESSOR_MODE AccessMode, void *ParseContext, void **Object)
 
NTSTATUS ObOpenObjectByName (POBJECT_ATTRIBUTES attr, POBJECT_TYPE type, KPROCESSOR_MODE mode, ACCESS_STATE *access_state, ACCESS_MASK access, PVOID ctx, HANDLE *handle)
 
NTSTATUS ObReferenceObjectByPointer (void *obj, ACCESS_MASK access, POBJECT_TYPE type, KPROCESSOR_MODE mode)
 
void ObfReferenceObject (void *obj)
 
void ObfDereferenceObject (void *obj)
 
NTSTATUS ObRegisterCallbacks (POB_CALLBACK_REGISTRATION callback, void **handle)
 
void ObUnRegisterCallbacks (void *handle)
 
USHORT ObGetFilterVersion (void)
 
DEVICE_OBJECTIoGetAttachedDeviceReference (DEVICE_OBJECT *device)
 
NTSTATUS PsCreateSystemThread (PHANDLE ThreadHandle, ULONG DesiredAccess, POBJECT_ATTRIBUTES ObjectAttributes, HANDLE ProcessHandle, PCLIENT_ID ClientId, PKSTART_ROUTINE StartRoutine, PVOID StartContext)
 
HANDLE PsGetCurrentProcessId (void)
 
HANDLE PsGetCurrentThreadId (void)
 
BOOLEAN PsIsSystemThread (PETHREAD thread)
 
BOOLEAN PsGetVersion (ULONG *major, ULONG *minor, ULONG *build, UNICODE_STRING *version)
 
NTSTATUS PsImpersonateClient (PETHREAD Thread, PACCESS_TOKEN Token, BOOLEAN CopyOnOpen, BOOLEAN EffectiveOnly, SECURITY_IMPERSONATION_LEVEL ImpersonationLevel)
 
void PsRevertToSelf (void)
 
NTSTATUS PsSetCreateProcessNotifyRoutine (PCREATE_PROCESS_NOTIFY_ROUTINE callback, BOOLEAN remove)
 
NTSTATUS PsSetCreateProcessNotifyRoutineEx (PCREATE_PROCESS_NOTIFY_ROUTINE_EX callback, BOOLEAN remove)
 
NTSTATUS PsSetCreateThreadNotifyRoutine (PCREATE_THREAD_NOTIFY_ROUTINE NotifyRoutine)
 
NTSTATUS PsRemoveCreateThreadNotifyRoutine (PCREATE_THREAD_NOTIFY_ROUTINE NotifyRoutine)
 
NTSTATUS PsRemoveLoadImageNotifyRoutine (PLOAD_IMAGE_NOTIFY_ROUTINE routine)
 
NTSTATUS PsReferenceProcessFilePointer (PEPROCESS process, FILE_OBJECT **file)
 
NTSTATUS PsTerminateSystemThread (NTSTATUS status)
 
NTSTATUS PsSuspendProcess (PEPROCESS process)
 
NTSTATUS PsResumeProcess (PEPROCESS process)
 
PVOID MmGetSystemRoutineAddress (PUNICODE_STRING SystemRoutineName)
 
BOOLEAN MmIsThisAnNtAsSystem (void)
 
NTSTATUS MmProtectMdlSystemAddress (PMDL MemoryDescriptorList, ULONG NewProtect)
 
MM_SYSTEMSIZE MmQuerySystemSize (void)
 
void KeInitializeDpc (KDPC *dpc, PKDEFERRED_ROUTINE deferred_routine, void *deferred_context)
 
void KeSetImportanceDpc (PRKDPC dpc, KDPC_IMPORTANCE importance)
 
void KeSetTargetProcessorDpc (PRKDPC dpc, CCHAR number)
 
void READ_REGISTER_BUFFER_UCHAR (PUCHAR Register, PUCHAR Buffer, ULONG Count)
 
NTSTATUS IoWMIRegistrationControl (PDEVICE_OBJECT DeviceObject, ULONG Action)
 
NTSTATUS IoWMIOpenBlock (LPCGUID guid, ULONG desired_access, PVOID *data_block_obj)
 
NTSTATUS PsSetLoadImageNotifyRoutine (PLOAD_IMAGE_NOTIFY_ROUTINE routine)
 
BOOLEAN IoSetThreadHardErrorMode (BOOLEAN EnableHardErrors)
 
BOOLEAN Ke386IoSetAccessProcess (PEPROCESS *process, ULONG flag)
 
BOOLEAN Ke386SetIoAccessMap (ULONG flag, PVOID buffer)
 
void IoStartNextPacket (PDEVICE_OBJECT deviceobject, BOOLEAN cancelable)
 
NTSTATUS ObQueryNameString (void *object, OBJECT_NAME_INFORMATION *name, ULONG size, ULONG *ret_size)
 
NTSTATUS IoRegisterPlugPlayNotification (IO_NOTIFICATION_EVENT_CATEGORY category, ULONG flags, PVOID data, PDRIVER_OBJECT driver, PDRIVER_NOTIFICATION_CALLBACK_ROUTINE callback, PVOID context, PVOID *notification)
 
NTSTATUS IoUnregisterPlugPlayNotification (PVOID notification)
 
NTSTATUS IoCsqInitialize (PIO_CSQ csq, PIO_CSQ_INSERT_IRP insert_irp, PIO_CSQ_REMOVE_IRP remove_irp, PIO_CSQ_PEEK_NEXT_IRP peek_irp, PIO_CSQ_ACQUIRE_LOCK acquire_lock, PIO_CSQ_RELEASE_LOCK release_lock, PIO_CSQ_COMPLETE_CANCELED_IRP complete_irp)
 
void KeEnterCriticalRegion (void)
 
void KeLeaveCriticalRegion (void)
 
BOOLEAN KeAreApcsDisabled (void)
 
void KeBugCheck (ULONG code)
 
void KeBugCheckEx (ULONG code, ULONG_PTR param1, ULONG_PTR param2, ULONG_PTR param3, ULONG_PTR param4)
 
void ProbeForRead (void *address, SIZE_T length, ULONG alignment)
 
void ProbeForWrite (void *address, SIZE_T length, ULONG alignment)
 
NTSTATUS CmRegisterCallback (EX_CALLBACK_FUNCTION *function, void *context, LARGE_INTEGER *cookie)
 
NTSTATUS CmUnRegisterCallback (LARGE_INTEGER cookie)
 
NTSTATUS IoAttachDevice (DEVICE_OBJECT *source, UNICODE_STRING *target, DEVICE_OBJECT *attached)
 
static NTSTATUS open_driver (const UNICODE_STRING *service_name, SC_HANDLE *service)
 
static LDR_DATA_TABLE_ENTRYfind_ldr_module (HMODULE module)
 
static voidget_rva (HMODULE module, DWORD va)
 
static void ldr_notify_callback (ULONG reason, LDR_DLL_NOTIFICATION_DATA *data, void *context)
 
static HMODULE load_driver (const WCHAR *driver_name, const UNICODE_STRING *keyname)
 
static NTSTATUS init_driver (DRIVER_OBJECT *driver_object, UNICODE_STRING *keyname)
 
static BOOLEAN get_drv_name (UNICODE_STRING *drv_name, const UNICODE_STRING *service_name)
 
NTSTATUS ZwLoadDriver (const UNICODE_STRING *service_name)
 
NTSTATUS ZwUnloadDriver (const UNICODE_STRING *service_name)
 
NTSTATUS IoCreateFile (HANDLE *handle, ACCESS_MASK access, OBJECT_ATTRIBUTES *attr, IO_STATUS_BLOCK *io, LARGE_INTEGER *alloc_size, ULONG attributes, ULONG sharing, ULONG disposition, ULONG create_options, void *ea_buffer, ULONG ea_length, CREATE_FILE_TYPE file_type, void *parameters, ULONG options)
 
PKEVENT IoCreateNotificationEvent (UNICODE_STRING *name, HANDLE *handle)
 
NTSTATUS PsAcquireProcessExitSynchronization (PEPROCESS process)
 
void PsReleaseProcessExitSynchronization (PEPROCESS process)
 
void ExfUnblockPushLock (EX_PUSH_LOCK *lock, PEX_PUSH_LOCK_WAIT_BLOCK block)
 
NTSTATUS FsRtlRegisterFileSystemFilterCallbacks (DRIVER_OBJECT *object, PFS_FILTER_CALLBACKS callbacks)
 
BOOLEAN SeSinglePrivilegeCheck (LUID privilege, KPROCESSOR_MODE mode)
 
BOOLEAN SePrivilegeCheck (PRIVILEGE_SET *privileges, SECURITY_SUBJECT_CONTEXT *context, KPROCESSOR_MODE mode)
 
NTSTATUS SeLocateProcessImageName (PEPROCESS process, UNICODE_STRING **image_name)
 
void KeFlushQueuedDpcs (void)
 
NTSTATUS DbgQueryDebugFilterState (ULONG component, ULONG level)
 
PVOID PsGetProcessWow64Process (PEPROCESS process)
 
NTSTATUS MmCopyVirtualMemory (PEPROCESS fromprocess, void *fromaddress, PEPROCESS toprocess, void *toaddress, SIZE_T bufsize, KPROCESSOR_MODE mode, SIZE_T *copied)
 
void KeEnterGuardedRegion (void)
 
void KeLeaveGuardedRegion (void)
 
NTSTATUS ExUuidCreate (UUID *uuid)
 
ULONG ExSetTimerResolution (ULONG time, BOOLEAN set_resolution)
 
PEPROCESS IoGetRequestorProcess (IRP *irp)
 
BOOLEAN RtlIsNtDdiVersionAvailable (ULONG version)
 
BOOLEAN KdRefreshDebuggerNotPresent (void)
 
static void generic_call_dpc_callback (TP_CALLBACK_INSTANCE *instance, void *context)
 
void KeGenericCallDpc (PKDEFERRED_ROUTINE routine, void *context)
 
BOOLEAN KeSignalCallDpcSynchronize (void *barrier)
 
void KeSignalCallDpcDone (void *barrier)
 
voidPsGetProcessSectionBaseAddress (PEPROCESS process)
 
void KeStackAttachProcess (KPROCESS *process, KAPC_STATE *apc_state)
 
void KeUnstackDetachProcess (KAPC_STATE *apc_state)
 
NTSTATUS KdDisableDebugger (void)
 
NTSTATUS KdEnableDebugger (void)
 
BOOL DllMain (HINSTANCE inst, DWORD reason, LPVOID reserved)
 

Variables

static struct __wine_debug_channel __wine_dbch_ntoskrnl = { 0xff, "ntoskrnl" }
 
static struct __wine_debug_channel *const __wine_dbch___default = &__wine_dbch_ntoskrnl
 
static struct __wine_debug_channel __wine_dbch_relay = { 0xff, "relay" }
 
BOOLEAN KdDebuggerEnabled = 0
 
ULONG InitSafeBootMode = 0
 
USHORT NtBuildNumber = 0
 
KSYSTEM_TIME KeTickCount = { 0, 0, 0 }
 
KSERVICE_TABLE_DESCRIPTOR KeServiceDescriptorTable [4] = { { 0 } }
 
static TP_POOLdpc_call_tp
 
static TP_CALLBACK_ENVIRON dpc_call_tpe
 
static CRITICAL_SECTION dpc_call_cs = { & dpc_call_cs_debug, -1, 0, 0, 0, 0 }
 
static CRITICAL_SECTION_DEBUG dpc_call_cs_debug = { 0, 0, & dpc_call_cs , { & dpc_call_cs_debug.ProcessLocksList, & dpc_call_cs_debug.ProcessLocksList }, 0, 0, { (DWORD_PTR)(__FILE__ ": " "dpc_call_cs") }}
 
static DWORD dpc_call_tls_index
 
static DWORD request_thread
 
static DWORD client_tid
 
static HANDLE ntoskrnl_heap
 
static voidldr_notify_cookie
 
static PLOAD_IMAGE_NOTIFY_ROUTINE load_image_notify_routines [8]
 
static unsigned int load_image_notify_routine_count
 
static struct wine_rb_tree wine_drivers = { wine_drivers_rb_compare }
 
static CRITICAL_SECTION drivers_cs = { & drivers_cs_debug, -1, 0, 0, 0, 0 }
 
static CRITICAL_SECTION_DEBUG drivers_cs_debug = { 0, 0, & drivers_cs , { & drivers_cs_debug.ProcessLocksList, & drivers_cs_debug.ProcessLocksList }, 0, 0, { (DWORD_PTR)(__FILE__ ": " "drivers_cs") }}
 
static CRITICAL_SECTION obref_cs = { & obref_cs_debug, -1, 0, 0, 0, 0 }
 
static CRITICAL_SECTION_DEBUG obref_cs_debug = { 0, 0, & obref_cs , { & obref_cs_debug.ProcessLocksList, & obref_cs_debug.ProcessLocksList }, 0, 0, { (DWORD_PTR)(__FILE__ ": " "obref_cs") }}
 
static const POBJECT_TYPEknown_types []
 
static CRITICAL_SECTION handle_map_cs = { & handle_map_cs_debug, -1, 0, 0, 0, 0 }
 
static CRITICAL_SECTION_DEBUG handle_map_cs_debug = { 0, 0, & handle_map_cs , { & handle_map_cs_debug.ProcessLocksList, & handle_map_cs_debug.ProcessLocksList }, 0, 0, { (DWORD_PTR)(__FILE__ ": " "handle_map_cs") }}
 
static const WCHAR file_type_name [] = {'F','i','l','e',0}
 
static struct _OBJECT_TYPE file_type
 
POBJECT_TYPE IoFileObjectType = &file_type
 
static CRITICAL_SECTION irp_completion_cs = { & irp_completion_cs_debug, -1, 0, 0, 0, 0 }
 
static CRITICAL_SECTION_DEBUG irp_completion_cs_debug = { 0, 0, & irp_completion_cs , { & irp_completion_cs_debug.ProcessLocksList, & irp_completion_cs_debug.ProcessLocksList }, 0, 0, { (DWORD_PTR)(__FILE__ ": " "irp_completion_cs") }}
 
static const dispatch_func dispatch_funcs []
 
PEPROCESS PsInitialSystemProcess = ((void*)0)
 
static const WCHAR driver_type_name [] = {'D','r','i','v','e','r',0}
 
static struct _OBJECT_TYPE driver_type
 
POBJECT_TYPE IoDriverObjectType = &driver_type
 
static const WCHAR device_type_name [] = {'D','e','v','i','c','e',0}
 
static struct _OBJECT_TYPE device_type
 
POBJECT_TYPE IoDeviceObjectType = &device_type
 
static CONFIGURATION_INFORMATION configuration_information
 
static const WCHAR process_type_name [] = {'P','r','o','c','e','s','s',0}
 
static struct _OBJECT_TYPE process_type
 
POBJECT_TYPE PsProcessType = &process_type
 
static const WCHAR thread_type_name [] = {'T','h','r','e','a','d',0}
 
static struct _OBJECT_TYPE thread_type
 
POBJECT_TYPE PsThreadType = &thread_type
 
static const WCHAR token_type_name [] = {'T','o','k','e','n',0}
 
static struct _OBJECT_TYPE token_type
 
POBJECT_TYPE SeTokenObjectType = &token_type
 

Macro Definition Documentation

◆ MAX_SERVICE_NAME

#define MAX_SERVICE_NAME   260

Definition at line 73 of file ntoskrnl.c.

◆ NONAMELESSSTRUCT

#define NONAMELESSSTRUCT

Definition at line 28 of file ntoskrnl.c.

◆ NONAMELESSUNION

#define NONAMELESSUNION

Definition at line 27 of file ntoskrnl.c.

◆ WIN32_NO_STATUS

#define WIN32_NO_STATUS

Definition at line 31 of file ntoskrnl.c.

Typedef Documentation

◆ dispatch_func

typedef NTSTATUS(* dispatch_func) (struct dispatch_context *context)

Definition at line 783 of file ntoskrnl.c.

◆ KSERVICE_TABLE_DESCRIPTOR

◆ PEX_PUSH_LOCK_WAIT_BLOCK

typedef struct _EX_PUSH_LOCK_WAIT_BLOCK* PEX_PUSH_LOCK_WAIT_BLOCK

Definition at line 3875 of file ntoskrnl.c.

◆ PKSERVICE_TABLE_DESCRIPTOR

Function Documentation

◆ alloc_kernel_object()

◆ build_driver_keypath()

static void build_driver_keypath ( const WCHAR name,
UNICODE_STRING keypath 
)
static

◆ cancel_completed_irp()

◆ CmRegisterCallback()

NTSTATUS CmRegisterCallback ( EX_CALLBACK_FUNCTION *  function,
void context,
LARGE_INTEGER cookie 
)

CmRegisterCallback (NTOSKRNL.EXE.@)

Definition at line 3384 of file ntoskrnl.c.

References STATUS_NOT_IMPLEMENTED.

◆ CmUnRegisterCallback()

NTSTATUS CmUnRegisterCallback ( LARGE_INTEGER  cookie)

CmUnRegisterCallback (NTOSKRNL.EXE.@)

Definition at line 3393 of file ntoskrnl.c.

References STATUS_NOT_IMPLEMENTED, and wine_dbgstr_longlong().

◆ create_file_object()

static void * create_file_object ( HANDLE  handle)
static

Definition at line 415 of file ntoskrnl.c.

References alloc_kernel_object(), IoFileObjectType, and NULL.

◆ create_process_object()

static void* create_process_object ( HANDLE  handle)
static

◆ create_thread_object()

◆ DbgQueryDebugFilterState()

NTSTATUS DbgQueryDebugFilterState ( ULONG  component,
ULONG  level 
)

DbgQueryDebugFilterState (NTOSKRNL.@)

Definition at line 3934 of file ntoskrnl.c.

References STATUS_NOT_IMPLEMENTED.

◆ delete_lookaside_list()

static void delete_lookaside_list ( GENERAL_LOOKASIDE lookaside)
static

◆ dispatch_cancel()

static NTSTATUS dispatch_cancel ( struct dispatch_context context)
static

◆ dispatch_close()

◆ dispatch_create()

◆ dispatch_flush()

◆ dispatch_free()

static NTSTATUS dispatch_free ( struct dispatch_context context)
static

Definition at line 763 of file ntoskrnl.c.

References free_kernel_object(), obj, context::obj, STATUS_SUCCESS, and wine_server_get_ptr().

◆ dispatch_ioctl()

◆ dispatch_irp()

◆ dispatch_irp_completion()

◆ dispatch_read()

◆ dispatch_write()

◆ DllMain()

◆ ExAllocatePool()

◆ ExAllocatePoolWithQuota()

PVOID ExAllocatePoolWithQuota ( POOL_TYPE  type,
SIZE_T  size 
)

ExAllocatePoolWithQuota (NTOSKRNL.EXE.@)

Definition at line 2048 of file ntoskrnl.c.

References ExAllocatePoolWithTag().

◆ ExAllocatePoolWithQuotaTag()

PVOID ExAllocatePoolWithQuotaTag ( POOL_TYPE  type,
SIZE_T  size,
ULONG  tag 
)

ExAllocatePoolWithQuotaTag (NTOSKRNL.EXE.@)

Definition at line 2069 of file ntoskrnl.c.

References ExAllocatePoolWithTag(), and tag.

◆ ExAllocatePoolWithTag()

PVOID ExAllocatePoolWithTag ( POOL_TYPE  type,
SIZE_T  size,
ULONG  tag 
)

ExAllocatePoolWithTag (NTOSKRNL.EXE.@)

Definition at line 2057 of file ntoskrnl.c.

References HeapAlloc(), and ntoskrnl_heap.

Referenced by ExAllocatePool(), ExAllocatePoolWithQuota(), ExAllocatePoolWithQuotaTag(), and initialize_lookaside_list().

◆ ExCreateCallback()

NTSTATUS ExCreateCallback ( PCALLBACK_OBJECT obj,
POBJECT_ATTRIBUTES  attr,
BOOLEAN  create,
BOOLEAN  allow_multiple 
)

ExCreateCallback (NTOSKRNL.EXE.@)

Definition at line 2078 of file ntoskrnl.c.

References obj, and STATUS_SUCCESS.

◆ ExDeleteNPagedLookasideList()

void ExDeleteNPagedLookasideList ( PNPAGED_LOOKASIDE_LIST  lookaside)

ExDeleteNPagedLookasideList (NTOSKRNL.EXE.@)

Definition at line 2180 of file ntoskrnl.c.

References delete_lookaside_list(), and _NPAGED_LOOKASIDE_LIST::L.

◆ ExDeletePagedLookasideList()

void ExDeletePagedLookasideList ( PPAGED_LOOKASIDE_LIST  lookaside)

ExDeletePagedLookasideList (NTOSKRNL.EXE.@)

Definition at line 2190 of file ntoskrnl.c.

References delete_lookaside_list(), and _PAGED_LOOKASIDE_LIST::L.

◆ ExFreePool()

◆ ExFreePoolWithTag()

void ExFreePoolWithTag ( void ptr,
ULONG  tag 
)

ExFreePoolWithTag (NTOSKRNL.EXE.@)

Definition at line 2112 of file ntoskrnl.c.

References HeapFree(), and ntoskrnl_heap.

Referenced by ExFreePool().

◆ ExfUnblockPushLock()

void ExfUnblockPushLock ( EX_PUSH_LOCK lock,
PEX_PUSH_LOCK_WAIT_BLOCK  block 
)

ExfUnblockPushLock (NTOSKRNL.@)

Definition at line 3880 of file ntoskrnl.c.

◆ ExInitializeNPagedLookasideList()

void ExInitializeNPagedLookasideList ( PNPAGED_LOOKASIDE_LIST  lookaside,
PALLOCATE_FUNCTION  allocate,
PFREE_FUNCTION  free,
ULONG  flags,
SIZE_T  size,
ULONG  tag,
USHORT  depth 
)

ExInitializeNPagedLookasideList (NTOSKRNL.EXE.@)

Definition at line 2143 of file ntoskrnl.c.

References depth(), flags, free(), initialize_lookaside_list(), _NPAGED_LOOKASIDE_LIST::L, NonPagedPool, and tag.

◆ ExInitializePagedLookasideList()

void ExInitializePagedLookasideList ( PPAGED_LOOKASIDE_LIST  lookaside,
PALLOCATE_FUNCTION  allocate,
PFREE_FUNCTION  free,
ULONG  flags,
SIZE_T  size,
ULONG  tag,
USHORT  depth 
)

ExInitializePagedLookasideList (NTOSKRNL.EXE.@)

Definition at line 2158 of file ntoskrnl.c.

References depth(), flags, free(), initialize_lookaside_list(), _PAGED_LOOKASIDE_LIST::L, PagedPool, and tag.

◆ ExInitializeZone()

NTSTATUS ExInitializeZone ( PZONE_HEADER  Zone,
ULONG  BlockSize,
PVOID  InitialSegment,
ULONG  InitialSegmentSize 
)

ExInitializeZone (NTOSKRNL.EXE.@)

Definition at line 2199 of file ntoskrnl.c.

References STATUS_NOT_IMPLEMENTED.

◆ ExRegisterCallback()

void* ExRegisterCallback ( PCALLBACK_OBJECT  callback_object,
PCALLBACK_FUNCTION  callback_function,
void callback_context 
)

Definition at line 2086 of file ntoskrnl.c.

◆ ExSetTimerResolution()

ULONG ExSetTimerResolution ( ULONG  time,
BOOLEAN  set_resolution 
)

ExSetTimerResolution (NTOSKRNL.EXE.@)

Definition at line 4023 of file ntoskrnl.c.

References KeQueryTimeIncrement(), and time().

◆ ExUnregisterCallback()

void ExUnregisterCallback ( void callback_registration)

Definition at line 2095 of file ntoskrnl.c.

◆ ExUuidCreate()

NTSTATUS ExUuidCreate ( UUID uuid)

ExUuidCreate (NTOSKRNL.@)

Creates a 128bit UUID.

RETURNS

STATUS_SUCCESS if successful. RPC_NT_UUID_LOCAL_ONLY if UUID is only locally unique.

NOTES

Follows RFC 4122, section 4.4 (Algorithms for Creating a UUID from Truly Random or Pseudo-Random Numbers)

Definition at line 4003 of file ntoskrnl.c.

References RtlGenRandom, and STATUS_SUCCESS.

◆ find_ldr_module()

static LDR_DATA_TABLE_ENTRY* find_ldr_module ( HMODULE  module)
static

Definition at line 3481 of file ntoskrnl.c.

References ldr, LdrFindEntryForAddress(), LdrLockLoaderLock(), LdrUnlockLoaderLock(), and NULL.

Referenced by init_driver().

◆ free_driver_object()

static void free_driver_object ( void obj)
static

Definition at line 1392 of file ntoskrnl.c.

References free_kernel_object(), obj, and RtlFreeUnicodeString().

◆ free_kernel_object()

static void free_kernel_object ( void obj)
static

Definition at line 148 of file ntoskrnl.c.

References GetProcessHeap(), HeapFree(), and obj.

Referenced by dispatch_free(), free_driver_object(), IoCreateDevice(), and IoCreateDriver().

◆ FsRtlIsNameInExpression()

BOOLEAN FsRtlIsNameInExpression ( PUNICODE_STRING  expression,
PUNICODE_STRING  name,
BOOLEAN  ignore,
PWCH  upcase 
)

FsRtlIsNameInExpression (NTOSKRNL.EXE.@)

Definition at line 2211 of file ntoskrnl.c.

References FALSE.

◆ FsRtlRegisterFileSystemFilterCallbacks()

NTSTATUS FsRtlRegisterFileSystemFilterCallbacks ( DRIVER_OBJECT object,
PFS_FILTER_CALLBACKS  callbacks 
)

FsRtlRegisterFileSystemFilterCallbacks (NTOSKRNL.@)

Definition at line 3888 of file ntoskrnl.c.

References STATUS_NOT_IMPLEMENTED.

◆ FsRtlRegisterUncProvider()

NTSTATUS FsRtlRegisterUncProvider ( PHANDLE  MupHandle,
PUNICODE_STRING  RedirDevName,
BOOLEAN  MailslotsSupported 
)

FsRtlRegisterUncProvider (NTOSKRNL.EXE.@)

Definition at line 2221 of file ntoskrnl.c.

References STATUS_NOT_IMPLEMENTED.

◆ generic_call_dpc_callback()

◆ get_device_manager()

◆ get_drv_name()

static BOOLEAN get_drv_name ( UNICODE_STRING drv_name,
const UNICODE_STRING service_name 
)
static

◆ get_rva()

static void* get_rva ( HMODULE  module,
DWORD  va 
)
inlinestatic

Definition at line 3498 of file ntoskrnl.c.

Referenced by ldr_notify_callback().

◆ init_driver()

◆ initialize_lookaside_list()

◆ IoAllocateDriverObjectExtension()

NTSTATUS IoAllocateDriverObjectExtension ( PDRIVER_OBJECT  DriverObject,
PVOID  ClientIdentificationAddress,
ULONG  DriverObjectExtensionSize,
PVOID DriverObjectExtension 
)

IoAllocateDriverObjectExtension (NTOSKRNL.EXE.@)

Definition at line 945 of file ntoskrnl.c.

References STATUS_NOT_IMPLEMENTED.

◆ IoAllocateErrorLogEntry()

PVOID IoAllocateErrorLogEntry ( PVOID  IoObject,
UCHAR  EntrySize 
)

IoAllocateErrorLogEntry (NTOSKRNL.EXE.@)

Definition at line 1078 of file ntoskrnl.c.

References NULL.

◆ IoAllocateIrp()

◆ IoAllocateMdl()

PMDL IoAllocateMdl ( PVOID  va,
ULONG  length,
BOOLEAN  secondary,
BOOLEAN  charge_quota,
IRP irp 
)

◆ IoAllocateWorkItem()

PIO_WORKITEM IoAllocateWorkItem ( PDEVICE_OBJECT  device)

IoAllocateWorkItem (NTOSKRNL.EXE.@)

Definition at line 1142 of file ntoskrnl.c.

References ExAllocatePool(), NULL, and PagedPool.

◆ IoAttachDevice()

NTSTATUS IoAttachDevice ( DEVICE_OBJECT source,
UNICODE_STRING target,
DEVICE_OBJECT attached 
)

IoAttachDevice (NTOSKRNL.EXE.@)

Definition at line 3402 of file ntoskrnl.c.

References debugstr_us(), and STATUS_NOT_IMPLEMENTED.

◆ IoAttachDeviceToDeviceStack()

PDEVICE_OBJECT IoAttachDeviceToDeviceStack ( DEVICE_OBJECT source,
DEVICE_OBJECT target 
)

IoAttachDeviceToDeviceStack (NTOSKRNL.EXE.@)

Definition at line 1213 of file ntoskrnl.c.

References _DEVICE_OBJECT::AttachedDevice, IoGetAttachedDevice(), source, and _DEVICE_OBJECT::StackSize.

Referenced by driver_add_device(), and HID_CreateDevice().

◆ IoBuildAsynchronousFsdRequest()

◆ IoBuildDeviceIoControlRequest()

◆ IoBuildSynchronousFsdRequest()

PIRP IoBuildSynchronousFsdRequest ( ULONG  majorfunc,
PDEVICE_OBJECT  device,
PVOID  buffer,
ULONG  length,
PLARGE_INTEGER  startoffset,
PKEVENT  event,
PIO_STATUS_BLOCK  iosb 
)

IoBuildSynchronousFsdRequest (NTOSKRNL.EXE.@)

Definition at line 1344 of file ntoskrnl.c.

References IoBuildAsynchronousFsdRequest(), NULL, and _IRP::UserEvent.

Referenced by dispatch_flush(), dispatch_read(), dispatch_write(), get_device_id(), handle_bus_relations(), send_pnp_irp(), and send_power_irp().

◆ IoCallDriver()

◆ IoCancelIrp()

BOOLEAN IoCancelIrp ( IRP irp)

◆ IoCompleteRequest()

◆ IoCreateDevice()

◆ IoCreateDriver()

◆ IoCreateFile()

NTSTATUS IoCreateFile ( HANDLE handle,
ACCESS_MASK  access,
OBJECT_ATTRIBUTES attr,
IO_STATUS_BLOCK io,
LARGE_INTEGER alloc_size,
ULONG  attributes,
ULONG  sharing,
ULONG  disposition,
ULONG  create_options,
void ea_buffer,
ULONG  ea_length,
CREATE_FILE_TYPE  file_type,
void parameters,
ULONG  options 
)

IoCreateFile (NTOSKRNL.EXE.@)

Definition at line 3815 of file ntoskrnl.c.

References STATUS_NOT_IMPLEMENTED.

◆ IoCreateNotificationEvent()

PKEVENT IoCreateNotificationEvent ( UNICODE_STRING name,
HANDLE handle 
)

IoCreateNotificationEvent (NTOSKRNL.EXE.@)

Definition at line 3827 of file ntoskrnl.c.

References debugstr_us(), and NULL.

◆ IoCreateSymbolicLink()

◆ IoCreateUnprotectedSymbolicLink()

NTSTATUS IoCreateUnprotectedSymbolicLink ( UNICODE_STRING name,
UNICODE_STRING target 
)

IoCreateUnprotectedSymbolicLink (NTOSKRNL.EXE.@)

Definition at line 1613 of file ntoskrnl.c.

References debugstr_us(), name, NtClose(), NtCreateSymbolicLinkObject(), NULL, OBJ_CASE_INSENSITIVE, OBJ_OPENIF, OBJ_PERMANENT, and SYMBOLIC_LINK_ALL_ACCESS.

◆ IoCsqInitialize()

NTSTATUS IoCsqInitialize ( PIO_CSQ  csq,
PIO_CSQ_INSERT_IRP  insert_irp,
PIO_CSQ_REMOVE_IRP  remove_irp,
PIO_CSQ_PEEK_NEXT_IRP  peek_irp,
PIO_CSQ_ACQUIRE_LOCK  acquire_lock,
PIO_CSQ_RELEASE_LOCK  release_lock,
PIO_CSQ_COMPLETE_CANCELED_IRP  complete_irp 
)

IoCsqInitialize (NTOSKRNL.EXE.@)

Definition at line 3311 of file ntoskrnl.c.

References acquire_lock(), complete_irp, and STATUS_SUCCESS.

◆ IoDeleteDevice()

◆ IoDeleteDriver()

void IoDeleteDriver ( DRIVER_OBJECT driver_object)

◆ IoDeleteSymbolicLink()

NTSTATUS IoDeleteSymbolicLink ( UNICODE_STRING name)

IoDeleteSymbolicLink (NTOSKRNL.EXE.@)

Definition at line 1636 of file ntoskrnl.c.

References name, NtClose(), NtMakeTemporaryObject(), NtOpenSymbolicLinkObject(), NULL, OBJ_CASE_INSENSITIVE, and status.

Referenced by delete_disk_device(), delete_mount_point(), and IoSetDeviceInterfaceState().

◆ IoDetachDevice()

void IoDetachDevice ( DEVICE_OBJECT device)

Definition at line 1205 of file ntoskrnl.c.

References NULL.

Referenced by fdo_pnp(), fdo_pnp_dispatch(), and HID_DeleteDevice().

◆ IofCallDriver()

NTSTATUS IofCallDriver ( DEVICE_OBJECT device,
IRP irp 
)

IofCallDriver (NTOSKRNL.EXE.@)

Definition at line 1718 of file ntoskrnl.c.

References IoCallDriver().

◆ IofCompleteRequest()

void IofCompleteRequest ( IRP irp,
UCHAR  priority_boost 
)

IofCompleteRequest (NTOSKRNL.EXE.@)

Definition at line 1954 of file ntoskrnl.c.

References IoCompleteRequest().

◆ IoFreeIrp()

void IoFreeIrp ( IRP irp)

◆ IoFreeMdl()

void IoFreeMdl ( PMDL  mdl)

IoFreeMdl (NTOSKRNL.EXE.@)

Definition at line 1125 of file ntoskrnl.c.

References GetProcessHeap(), and HeapFree().

Referenced by IoFreeIrp().

◆ IoFreeWorkItem()

void IoFreeWorkItem ( PIO_WORKITEM  work_item)

IoFreeWorkItem (NTOSKRNL.EXE.@)

Definition at line 1157 of file ntoskrnl.c.

References ExFreePool().

◆ IoGetAttachedDevice()

◆ IoGetAttachedDeviceReference()

DEVICE_OBJECT* IoGetAttachedDeviceReference ( DEVICE_OBJECT device)

IoGetAttachedDeviceReference (NTOSKRNL.EXE.@)

Definition at line 2907 of file ntoskrnl.c.

References IoGetAttachedDevice(), and ObReferenceObject().

Referenced by send_device_irp().

◆ IoGetConfigurationInformation()

PCONFIGURATION_INFORMATION IoGetConfigurationInformation ( void  )

IoGetConfigurationInformation (NTOSKRNL.EXE.@)

Definition at line 1739 of file ntoskrnl.c.

References configuration_information.

◆ IoGetCurrentProcess()

PEPROCESS IoGetCurrentProcess ( void  )

IoGetCurrentProcess / PsGetCurrentProcess (NTOSKRNL.EXE.@)

Definition at line 2256 of file ntoskrnl.c.

References KeGetCurrentThread(), and _KTHREAD::process.

Referenced by wine_ntoskrnl_main_loop().

◆ IoGetDeviceInterfaces()

NTSTATUS IoGetDeviceInterfaces ( const GUID InterfaceClassGuid,
PDEVICE_OBJECT  PhysicalDeviceObject,
ULONG  Flags,
PWSTR SymbolicLinkList 
)

IoGetDeviceInterfaces (NTOSKRNL.EXE.@)

Definition at line 1660 of file ntoskrnl.c.

References STATUS_NOT_IMPLEMENTED.

◆ IoGetDeviceObjectPointer()

NTSTATUS IoGetDeviceObjectPointer ( UNICODE_STRING name,
ACCESS_MASK  access,
PFILE_OBJECT file,
PDEVICE_OBJECT device 
)

IoGetDeviceObjectPointer (NTOSKRNL.EXE.@)

Definition at line 1673 of file ntoskrnl.c.

References access(), debugstr_us(), _DEVICE_OBJECT::DriverObject, NULL, _DEVICE_OBJECT::StackSize, and STATUS_SUCCESS.

◆ IoGetDriverObjectExtension()

PVOID IoGetDriverObjectExtension ( PDRIVER_OBJECT  DriverObject,
PVOID  ClientIdentificationAddress 
)

IoGetDriverObjectExtension (NTOSKRNL.EXE.@)

Definition at line 959 of file ntoskrnl.c.

References NULL.

◆ IoGetRelatedDeviceObject()

PDEVICE_OBJECT IoGetRelatedDeviceObject ( PFILE_OBJECT  obj)

IoGetRelatedDeviceObject (NTOSKRNL.EXE.@)

Definition at line 1728 of file ntoskrnl.c.

References NULL, and obj.

◆ IoGetRequestorProcess()

PEPROCESS IoGetRequestorProcess ( IRP irp)

IoGetRequestorProcess (NTOSKRNL.EXE.@)

Definition at line 4032 of file ntoskrnl.c.

References _ETHREAD::kthread, _IRP::Overlay, _IRP::Tail, and _IRP::Thread.

◆ IoGetStackLimits()

void IoGetStackLimits ( ULONG_PTR low,
ULONG_PTR high 
)

IoGetStackLimits (NTOSKRNL.EXE.@)

Definition at line 1749 of file ntoskrnl.c.

References NtCurrentTeb(), _NT_TIB::StackBase, _NT_TIB::StackLimit, and _TEB::Tib.

◆ IoInitializeIrp()

void IoInitializeIrp ( IRP irp,
USHORT  size,
CCHAR  stack_size 
)

◆ IoInitializeTimer()

NTSTATUS IoInitializeTimer ( PDEVICE_OBJECT  DeviceObject,
PIO_TIMER_ROUTINE  TimerRoutine,
PVOID  Context 
)

IoInitializeTimer (NTOSKRNL.EXE.@)

Definition at line 1000 of file ntoskrnl.c.

References STATUS_NOT_IMPLEMENTED.

◆ IoIsWdmVersionAvailable()

NTSTATUS IoIsWdmVersionAvailable ( UCHAR  MajorVersion,
UCHAR  MinorVersion 
)

IoIsWdmVersionAvailable (NTOSKRNL.EXE.@)

Definition at line 1762 of file ntoskrnl.c.

References FALSE, GetVersion(), HIBYTE, LOBYTE, LOWORD, major, minor, and version.

◆ IoQueryDeviceDescription()

NTSTATUS IoQueryDeviceDescription ( PINTERFACE_TYPE  itype,
PULONG  bus,
PCONFIGURATION_TYPE  ctype,
PULONG  cnum,
PCONFIGURATION_TYPE  ptype,
PULONG  pnum,
PIO_QUERY_DEVICE_ROUTINE  callout,
PVOID  context 
)

IoQueryDeviceDescription (NTOSKRNL.EXE.@)

Definition at line 1827 of file ntoskrnl.c.

References STATUS_NOT_IMPLEMENTED.

◆ IoQueueWorkItem()

void IoQueueWorkItem ( PIO_WORKITEM  work_item,
PIO_WORKITEM_ROUTINE  worker,
WORK_QUEUE_TYPE  type,
void context 
)

IoQueueWorkItem (NTOSKRNL.EXE.@)

Definition at line 1179 of file ntoskrnl.c.

References context, NULL, ObReferenceObject(), run_work_item_worker(), and TrySubmitThreadpoolCallback().

◆ IoRegisterBootDriverReinitialization()

void IoRegisterBootDriverReinitialization ( DRIVER_OBJECT driver,
PDRIVER_REINITIALIZE  proc,
void ctx 
)

IoRegisterBootDriverReinitialization (NTOSKRNL.EXE.@)

Definition at line 1846 of file ntoskrnl.c.

References proc.

◆ IoRegisterDriverReinitialization()

void IoRegisterDriverReinitialization ( PDRIVER_OBJECT  obj,
PDRIVER_REINITIALIZE  reinit,
PVOID  context 
)

IoRegisterDriverReinitialization (NTOSKRNL.EXE.@)

Definition at line 1838 of file ntoskrnl.c.

References obj.

◆ IoRegisterFileSystem()

void IoRegisterFileSystem ( PDEVICE_OBJECT  DeviceObject)

IoRegisterFileSystem (NTOSKRNL.EXE.@)

Definition at line 2551 of file ntoskrnl.c.

◆ IoRegisterPlugPlayNotification()

NTSTATUS IoRegisterPlugPlayNotification ( IO_NOTIFICATION_EVENT_CATEGORY  category,
ULONG  flags,
PVOID  data,
PDRIVER_OBJECT  driver,
PDRIVER_NOTIFICATION_CALLBACK_ROUTINE  callback,
PVOID  context,
PVOID notification 
)

IoRegisterPlugPlayNotification (NTOSKRNL.EXE.@)

Definition at line 3291 of file ntoskrnl.c.

References data, flags, and STATUS_SUCCESS.

◆ IoRegisterShutdownNotification()

NTSTATUS IoRegisterShutdownNotification ( PDEVICE_OBJECT  obj)

IoRegisterShutdownNotification (NTOSKRNL.EXE.@)

Definition at line 1854 of file ntoskrnl.c.

References obj, and STATUS_SUCCESS.

◆ IoReportResourceForDetection()

NTSTATUS IoReportResourceForDetection ( DRIVER_OBJECT drv_obj,
CM_RESOURCE_LIST drv_list,
ULONG  drv_size,
DEVICE_OBJECT dev_obj,
CM_RESOURCE_LIST dev_list,
ULONG  dev_size,
BOOLEAN conflict 
)

IoReportResourceForDetection (NTOSKRNL.EXE.@)

Definition at line 1873 of file ntoskrnl.c.

References STATUS_NOT_IMPLEMENTED.

◆ IoReportResourceUsage()

NTSTATUS IoReportResourceUsage ( UNICODE_STRING name,
DRIVER_OBJECT drv_obj,
CM_RESOURCE_LIST drv_list,
ULONG  drv_size,
DRIVER_OBJECT dev_obj,
CM_RESOURCE_LIST dev_list,
ULONG  dev_size,
BOOLEAN  overwrite,
BOOLEAN conflict 
)

IoReportResourceUsage (NTOSKRNL.EXE.@)

Definition at line 1887 of file ntoskrnl.c.

References debugstr_us(), and STATUS_NOT_IMPLEMENTED.

◆ IoReuseIrp()

◆ IoSetThreadHardErrorMode()

BOOLEAN IoSetThreadHardErrorMode ( BOOLEAN  EnableHardErrors)

IoSetThreadHardErrorMode (NTOSKRNL.EXE.@)

Definition at line 3238 of file ntoskrnl.c.

References FALSE.

◆ IoStartNextPacket()

void IoStartNextPacket ( PDEVICE_OBJECT  deviceobject,
BOOLEAN  cancelable 
)

IoStartNextPacket (NTOSKRNL.EXE.@)

Definition at line 3265 of file ntoskrnl.c.

◆ IoStartTimer()

void IoStartTimer ( PDEVICE_OBJECT  DeviceObject)

IoStartTimer (NTOSKRNL.EXE.@)

Definition at line 1012 of file ntoskrnl.c.

◆ IoStopTimer()

void IoStopTimer ( PDEVICE_OBJECT  DeviceObject)

IoStopTimer (NTOSKRNL.EXE.@)

Definition at line 1021 of file ntoskrnl.c.

◆ IoUnregisterFileSystem()

void IoUnregisterFileSystem ( PDEVICE_OBJECT  DeviceObject)

IoUnregisterFileSystem (NTOSKRNL.EXE.@)

Definition at line 2578 of file ntoskrnl.c.

◆ IoUnregisterPlugPlayNotification()

NTSTATUS IoUnregisterPlugPlayNotification ( PVOID  notification)

IoUnregisterPlugPlayNotification (NTOSKRNL.EXE.@)

Definition at line 3302 of file ntoskrnl.c.

References STATUS_SUCCESS.

◆ IoUnregisterShutdownNotification()

void IoUnregisterShutdownNotification ( PDEVICE_OBJECT  obj)

IoUnregisterShutdownNotification (NTOSKRNL.EXE.@)

Definition at line 1864 of file ntoskrnl.c.

References obj.

◆ IoWMIOpenBlock()

NTSTATUS IoWMIOpenBlock ( LPCGUID  guid,
ULONG  desired_access,
PVOID data_block_obj 
)

IoWMIOpenBlock (NTOSKRNL.EXE.@)

Definition at line 3214 of file ntoskrnl.c.

References guid, and STATUS_NOT_IMPLEMENTED.

◆ IoWMIRegistrationControl()

NTSTATUS IoWMIRegistrationControl ( PDEVICE_OBJECT  DeviceObject,
ULONG  Action 
)

IoWMIRegistrationControl (NTOSKRNL.EXE.@)

Definition at line 3205 of file ntoskrnl.c.

References STATUS_SUCCESS.

◆ KdDisableDebugger()

NTSTATUS KdDisableDebugger ( void  )

Definition at line 4259 of file ntoskrnl.c.

References STATUS_DEBUGGER_INACTIVE.

◆ KdEnableDebugger()

NTSTATUS KdEnableDebugger ( void  )

Definition at line 4265 of file ntoskrnl.c.

References STATUS_DEBUGGER_INACTIVE.

◆ KdRefreshDebuggerNotPresent()

BOOLEAN KdRefreshDebuggerNotPresent ( void  )

Definition at line 4058 of file ntoskrnl.c.

References KdDebuggerEnabled.

◆ Ke386IoSetAccessProcess()

BOOLEAN Ke386IoSetAccessProcess ( PEPROCESS process,
ULONG  flag 
)

Ke386IoSetAccessProcess (NTOSKRNL.EXE.@)

Definition at line 3247 of file ntoskrnl.c.

References FALSE, and flag.

◆ Ke386SetIoAccessMap()

BOOLEAN Ke386SetIoAccessMap ( ULONG  flag,
PVOID  buffer 
)

Ke386SetIoAccessMap (NTOSKRNL.EXE.@)

Definition at line 3256 of file ntoskrnl.c.

References FALSE, and flag.

◆ KeAreApcsDisabled()

BOOLEAN KeAreApcsDisabled ( void  )

KeAreApcsDisabled (NTOSKRNL.@)

Definition at line 3341 of file ntoskrnl.c.

References _KTHREAD::critical_region, and KeGetCurrentThread().

◆ KeBugCheck()

void KeBugCheck ( ULONG  code)

KeBugCheck (NTOSKRNL.@)

Definition at line 3351 of file ntoskrnl.c.

References KeBugCheckEx().

◆ KeBugCheckEx()

void KeBugCheckEx ( ULONG  code,
ULONG_PTR  param1,
ULONG_PTR  param2,
ULONG_PTR  param3,
ULONG_PTR  param4 
)

KeBugCheckEx (NTOSKRNL.@)

Definition at line 3359 of file ntoskrnl.c.

References ERR, ExitProcess(), param1, and param2.

Referenced by KeBugCheck().

◆ KeEnterCriticalRegion()

void KeEnterCriticalRegion ( void  )

KeEnterCriticalRegion (NTOSKRNL.EXE.@)

Definition at line 3323 of file ntoskrnl.c.

References _KTHREAD::critical_region, and KeGetCurrentThread().

Referenced by dispatch_irp().

◆ KeEnterGuardedRegion()

void KeEnterGuardedRegion ( void  )

KeEnterGuardedRegion (NTOSKRNL.@)

Definition at line 3966 of file ntoskrnl.c.

◆ KeExpandKernelStackAndCallout()

NTSTATUS KeExpandKernelStackAndCallout ( PEXPAND_STACK_CALLOUT  callout,
void parameter,
SIZE_T  size 
)

KeExpandKernelStackAndCallout (NTOSKRNL.EXE.@)

Definition at line 2570 of file ntoskrnl.c.

References KeExpandKernelStackAndCalloutEx(), NULL, and TRUE.

◆ KeExpandKernelStackAndCalloutEx()

NTSTATUS KeExpandKernelStackAndCalloutEx ( PEXPAND_STACK_CALLOUT  callout,
void parameter,
SIZE_T  size,
BOOLEAN  wait,
void context 
)

KeExpandKernelStackAndCalloutEx (NTOSKRNL.EXE.@)

Definition at line 2559 of file ntoskrnl.c.

References STATUS_SUCCESS.

Referenced by KeExpandKernelStackAndCallout().

◆ KeFlushQueuedDpcs()

void KeFlushQueuedDpcs ( void  )

KeFlushQueuedDpcs (NTOSKRNL.@)

Definition at line 3926 of file ntoskrnl.c.

◆ KeGenericCallDpc()

◆ KeGetCurrentThread()

◆ KeInitializeDpc()

void KeInitializeDpc ( KDPC dpc,
PKDEFERRED_ROUTINE  deferred_routine,
void deferred_context 
)

KeInitializeDpc (NTOSKRNL.EXE.@)

Definition at line 3169 of file ntoskrnl.c.

References _KDPC::DeferredContext, and _KDPC::DeferredRoutine.

◆ KeInsertQueue()

LONG KeInsertQueue ( PRKQUEUE  Queue,
PLIST_ENTRY  Entry 
)

KeInsertQueue (NTOSKRNL.EXE.@)

Definition at line 2405 of file ntoskrnl.c.

◆ KeLeaveCriticalRegion()

void KeLeaveCriticalRegion ( void  )

KeLeaveCriticalRegion (NTOSKRNL.EXE.@)

Definition at line 3332 of file ntoskrnl.c.

References _KTHREAD::critical_region, and KeGetCurrentThread().

Referenced by dispatch_irp().

◆ KeLeaveGuardedRegion()

void KeLeaveGuardedRegion ( void  )

KeLeaveGuardedRegion (NTOSKRNL.@)

Definition at line 3974 of file ntoskrnl.c.

◆ KeQueryActiveProcessorCountEx()

ULONG KeQueryActiveProcessorCountEx ( USHORT  group_number)

Definition at line 2428 of file ntoskrnl.c.

References GetActiveProcessorCount().

Referenced by KeGenericCallDpc().

◆ KeQueryActiveProcessors()

KAFFINITY KeQueryActiveProcessors ( void  )

KeQueryActiveProcessors (NTOSKRNL.EXE.@)

Return the active Processors as bitmask

RETURNS active Processors as bitmask

Definition at line 2420 of file ntoskrnl.c.

References GetCurrentProcess(), GetProcessAffinityMask(), and NULL.

Referenced by KeRevertToUserAffinityThreadEx(), and KeSetSystemAffinityThreadEx().

◆ KeQueryInterruptTime()

ULONGLONG KeQueryInterruptTime ( void  )

KeQueryInterruptTime (NTOSKRNL.EXE.@)

Return the interrupt time count

Definition at line 2441 of file ntoskrnl.c.

References KeQueryTickCount(), and _LARGE_INTEGER::QuadPart.

◆ KeQuerySystemTime()

void KeQuerySystemTime ( LARGE_INTEGER time)

KeQuerySystemTime (NTOSKRNL.EXE.@)

Definition at line 2453 of file ntoskrnl.c.

References NtQuerySystemTime(), and time().

◆ KeQueryTickCount()

void KeQueryTickCount ( LARGE_INTEGER count)

◆ KeQueryTimeIncrement()

ULONG KeQueryTimeIncrement ( void  )

KeQueryTimeIncrement (NTOSKRNL.EXE.@)

Definition at line 2475 of file ntoskrnl.c.

Referenced by ExSetTimerResolution().

◆ KeRevertToUserAffinityThread()

void KeRevertToUserAffinityThread ( void  )

KeRevertToUserAffinityThread (NTOSKRNL.EXE.@)

Definition at line 2525 of file ntoskrnl.c.

References KeRevertToUserAffinityThreadEx().

◆ KeRevertToUserAffinityThreadEx()

void KeRevertToUserAffinityThreadEx ( KAFFINITY  affinity)

◆ kernel_object_from_handle()

◆ KeSetImportanceDpc()

void KeSetImportanceDpc ( PRKDPC  dpc,
KDPC_IMPORTANCE  importance 
)

KeSetImportanceDpc (NTOSKRNL.EXE.@)

Definition at line 3181 of file ntoskrnl.c.

◆ KeSetPriorityThread()

KPRIORITY KeSetPriorityThread ( PKTHREAD  Thread,
KPRIORITY  Priority 
)

KeSetPriorityThread (NTOSKRNL.EXE.@)

Definition at line 2484 of file ntoskrnl.c.

◆ KeSetSystemAffinityThread()

void KeSetSystemAffinityThread ( KAFFINITY  affinity)

KeSetSystemAffinityThread (NTOSKRNL.EXE.@)

Definition at line 2493 of file ntoskrnl.c.

References KeSetSystemAffinityThreadEx().

◆ KeSetSystemAffinityThreadEx()

◆ KeSetTargetProcessorDpc()

void KeSetTargetProcessorDpc ( PRKDPC  dpc,
CCHAR  number 
)

KeSetTargetProcessorDpc (NTOSKRNL.EXE.@)

Definition at line 3189 of file ntoskrnl.c.

◆ KeSignalCallDpcDone()

void KeSignalCallDpcDone ( void barrier)

Definition at line 4214 of file ntoskrnl.c.

◆ KeSignalCallDpcSynchronize()

BOOLEAN KeSignalCallDpcSynchronize ( void barrier)

◆ KeStackAttachProcess()

void KeStackAttachProcess ( KPROCESS process,
KAPC_STATE apc_state 
)

Definition at line 4249 of file ntoskrnl.c.

◆ KeUnstackDetachProcess()

void KeUnstackDetachProcess ( KAPC_STATE apc_state)

Definition at line 4254 of file ntoskrnl.c.

◆ ldr_notify_callback()

◆ load_driver()

◆ MmAllocateContiguousMemory()

PVOID MmAllocateContiguousMemory ( SIZE_T  size,
PHYSICAL_ADDRESS  highest_valid_address 
)

MmAllocateContiguousMemory (NTOSKRNL.EXE.@)

Definition at line 2595 of file ntoskrnl.c.

References NULL, _LARGE_INTEGER::QuadPart, and wine_dbgstr_longlong().

◆ MmAllocateContiguousMemorySpecifyCache()

PVOID MmAllocateContiguousMemorySpecifyCache ( SIZE_T  size,
PHYSICAL_ADDRESS  lowest_valid_address,
PHYSICAL_ADDRESS  highest_valid_address,
PHYSICAL_ADDRESS  BoundaryAddressMultiple,
MEMORY_CACHING_TYPE  CacheType 
)

MmAllocateContiguousMemorySpecifyCache (NTOSKRNL.EXE.@)

Definition at line 2604 of file ntoskrnl.c.

References NULL.

◆ MmAllocateNonCachedMemory()

PVOID MmAllocateNonCachedMemory ( SIZE_T  size)

MmAllocateNonCachedMemory (NTOSKRNL.EXE.@)

Definition at line 2586 of file ntoskrnl.c.

References MEM_COMMIT, MEM_RESERVE, NULL, PAGE_NOCACHE, PAGE_READWRITE, and VirtualAlloc().

◆ MmAllocatePagesForMdl()

PMDL MmAllocatePagesForMdl ( PHYSICAL_ADDRESS  lowaddress,
PHYSICAL_ADDRESS  highaddress,
PHYSICAL_ADDRESS  skipbytes,
SIZE_T  size 
)

MmAllocatePagesForMdl (NTOSKRNL.EXE.@)

Definition at line 2617 of file ntoskrnl.c.

References NULL, _LARGE_INTEGER::QuadPart, and wine_dbgstr_longlong().

◆ MmBuildMdlForNonPagedPool()

void MmBuildMdlForNonPagedPool ( MDL mdl)

MmBuildMdlForNonPagedPool (NTOSKRNL.EXE.@)

Definition at line 2628 of file ntoskrnl.c.

◆ MmCopyVirtualMemory()

NTSTATUS MmCopyVirtualMemory ( PEPROCESS  fromprocess,
void fromaddress,
PEPROCESS  toprocess,
void toaddress,
SIZE_T  bufsize,
KPROCESSOR_MODE  mode,
SIZE_T copied 
)

MmCopyVirtualMemory (NTOSKRNL.@)

Definition at line 3952 of file ntoskrnl.c.

References mode, and STATUS_NOT_IMPLEMENTED.

◆ MmCreateSection()

NTSTATUS MmCreateSection ( HANDLE handle,
ACCESS_MASK  access,
OBJECT_ATTRIBUTES attr,
LARGE_INTEGER size,
ULONG  protect,
ULONG  alloc_attr,
HANDLE  file,
FILE_OBJECT file_obj 
)

MmCreateSection (NTOSKRNL.EXE.@)

Definition at line 2636 of file ntoskrnl.c.

References access(), file_obj, STATUS_NOT_IMPLEMENTED, and wine_dbgstr_longlong().

◆ MmFreeNonCachedMemory()

void MmFreeNonCachedMemory ( void addr,
SIZE_T  size 
)

MmFreeNonCachedMemory (NTOSKRNL.EXE.@)

Definition at line 2648 of file ntoskrnl.c.

References MEM_RELEASE, and VirtualFree().

◆ MmGetSystemRoutineAddress()

PVOID MmGetSystemRoutineAddress ( PUNICODE_STRING  SystemRoutineName)

MmGetSystemRoutineAddress (NTOSKRNL.EXE.@)

Definition at line 3107 of file ntoskrnl.c.

References _STRING::Buffer, debugstr_us(), GetModuleHandleW(), GetProcAddress(), NULL, RtlFreeAnsiString(), RtlUnicodeStringToAnsiString(), STATUS_SUCCESS, and TRUE.

◆ MmIsAddressValid()

BOOLEAN MmIsAddressValid ( PVOID  VirtualAddress)

MmIsAddressValid (NTOSKRNL.EXE.@)

Check if the process can access the virtual address without a pagefault

PARAMS VirtualAddress [I] Address to check

RETURNS Failure: FALSE Success: TRUE (Accessing the Address works without a Pagefault)

Definition at line 2667 of file ntoskrnl.c.

References IsBadReadPtr().

◆ MmIsThisAnNtAsSystem()

BOOLEAN MmIsThisAnNtAsSystem ( void  )

MmIsThisAnNtAsSystem (NTOSKRNL.EXE.@)

Definition at line 3142 of file ntoskrnl.c.

References FALSE.

◆ MmLockPagableSectionByHandle()

void MmLockPagableSectionByHandle ( PVOID  ImageSectionHandle)

MmLockPagableSectionByHandle (NTOSKRNL.EXE.@)

Definition at line 2686 of file ntoskrnl.c.

◆ MmMapIoSpace()

PVOID MmMapIoSpace ( PHYSICAL_ADDRESS  PhysicalAddress,
DWORD  NumberOfBytes,
DWORD  CacheType 
)

MmMapIoSpace (NTOSKRNL.EXE.@)

Definition at line 2676 of file ntoskrnl.c.

References NULL, and _LARGE_INTEGER::u.

◆ MmMapLockedPagesSpecifyCache()

PVOID MmMapLockedPagesSpecifyCache ( PMDLX  MemoryDescriptorList,
KPROCESSOR_MODE  AccessMode,
MEMORY_CACHING_TYPE  CacheType,
PVOID  BaseAddress,
ULONG  BugCheckOnFailure,
MM_PAGE_PRIORITY  Priority 
)

MmMapLockedPagesSpecifyCache (NTOSKRNL.EXE.@)

Definition at line 2694 of file ntoskrnl.c.

References NULL.

Referenced by MmGetSystemAddressForMdlSafe().

◆ MmPageEntireDriver()

PVOID MmPageEntireDriver ( PVOID  AddrInSection)

MmPageEntireDriver (NTOSKRNL.EXE.@)

Definition at line 2721 of file ntoskrnl.c.

◆ MmProbeAndLockPages()

void MmProbeAndLockPages ( PMDLX  MemoryDescriptorList,
KPROCESSOR_MODE  AccessMode,
LOCK_OPERATION  Operation 
)

MmProbeAndLockPages (NTOSKRNL.EXE.@)

Definition at line 2731 of file ntoskrnl.c.

◆ MmProtectMdlSystemAddress()

NTSTATUS MmProtectMdlSystemAddress ( PMDL  MemoryDescriptorList,
ULONG  NewProtect 
)

MmProtectMdlSystemAddress (NTOSKRNL.EXE.@)

Definition at line 3151 of file ntoskrnl.c.

References STATUS_SUCCESS.

◆ MmQuerySystemSize()

MM_SYSTEMSIZE MmQuerySystemSize ( void  )

MmQuerySystemSize (NTOSKRNL.EXE.@)

Definition at line 3160 of file ntoskrnl.c.

References MmLargeSystem.

◆ MmResetDriverPaging()

void MmResetDriverPaging ( PVOID  AddrInSection)

MmResetDriverPaging (NTOSKRNL.EXE.@)

Definition at line 2740 of file ntoskrnl.c.

◆ MmUnlockPagableImageSection()

void MmUnlockPagableImageSection ( PVOID  ImageSectionHandle)

MmUnlockPagableImageSection (NTOSKRNL.EXE.@)

Definition at line 2713 of file ntoskrnl.c.

◆ MmUnlockPages()

void MmUnlockPages ( PMDLX  MemoryDescriptorList)

MmUnlockPages (NTOSKRNL.EXE.@)

Definition at line 2749 of file ntoskrnl.c.

◆ MmUnmapIoSpace()

void MmUnmapIoSpace ( PVOID  BaseAddress,
SIZE_T  NumberOfBytes 
)

MmUnmapIoSpace (NTOSKRNL.EXE.@)

Definition at line 2758 of file ntoskrnl.c.

◆ MmUnmapLockedPages()

void MmUnmapLockedPages ( void base,
MDL mdl 
)

MmUnmapLockedPages (NTOSKRNL.EXE.@)

Definition at line 2705 of file ntoskrnl.c.

References base.

◆ NTOSKRNL_InterlockedCompareExchange()

LONG NTOSKRNL_InterlockedCompareExchange ( LONG volatile *  dest,
LONG  xchg,
LONG  compare 
)

InterlockedCompareExchange (NTOSKRNL.EXE.@)

Definition at line 1990 of file ntoskrnl.c.

References compare().

◆ NTOSKRNL_InterlockedDecrement()

LONG NTOSKRNL_InterlockedDecrement ( LONG volatile *  dest)

InterlockedDecrement (NTOSKRNL.EXE.@)

Definition at line 2000 of file ntoskrnl.c.

◆ NTOSKRNL_InterlockedExchange()

LONG NTOSKRNL_InterlockedExchange ( LONG volatile *  dest,
LONG  val 
)

InterlockedExchange (NTOSKRNL.EXE.@)

Definition at line 2010 of file ntoskrnl.c.

◆ NTOSKRNL_InterlockedExchangeAdd()

LONG NTOSKRNL_InterlockedExchangeAdd ( LONG volatile *  dest,
LONG  incr 
)

InterlockedExchangeAdd (NTOSKRNL.EXE.@)

Definition at line 2020 of file ntoskrnl.c.

◆ NTOSKRNL_InterlockedIncrement()

LONG NTOSKRNL_InterlockedIncrement ( LONG volatile *  dest)

InterlockedIncrement (NTOSKRNL.EXE.@)

Definition at line 2030 of file ntoskrnl.c.

◆ ObDereferenceObject()

◆ ObfDereferenceObject()

void ObfDereferenceObject ( void obj)

ObfDereferenceObject (NTOSKRNL.EXE.@)

Definition at line 2868 of file ntoskrnl.c.

References ObDereferenceObject(), and obj.

◆ ObfReferenceObject()

void ObfReferenceObject ( void obj)

ObfReferenceObject (NTOSKRNL.EXE.@)

Definition at line 2858 of file ntoskrnl.c.

References obj, and ObReferenceObject().

Referenced by build_device_relations(), and fdo_pnp().

◆ ObGetFilterVersion()

USHORT ObGetFilterVersion ( void  )

ObGetFilterVersion (NTOSKRNL.EXE.@)

Definition at line 2897 of file ntoskrnl.c.

References OB_FLT_REGISTRATION_VERSION.

◆ ObGetObjectType()

POBJECT_TYPE ObGetObjectType ( void object)

ObGetObjectType (NTOSKRNL.EXE.@)

Definition at line 253 of file ntoskrnl.c.

References header::type.

Referenced by kernel_object_from_handle(), and ObOpenObjectByPointer().

◆ ObOpenObjectByName()

NTSTATUS ObOpenObjectByName ( POBJECT_ATTRIBUTES  attr,
POBJECT_TYPE  type,
KPROCESSOR_MODE  mode,
ACCESS_STATE access_state,
ACCESS_MASK  access,
PVOID  ctx,
HANDLE handle 
)

◆ ObOpenObjectByPointer()

◆ ObQueryNameString()

NTSTATUS ObQueryNameString ( void object,
OBJECT_NAME_INFORMATION name,
ULONG  size,
ULONG ret_size 
)

ObQueryNameString (NTOSKRNL.EXE.@)

Definition at line 3273 of file ntoskrnl.c.

References KernelMode, NtClose(), NtQueryObject(), NULL, ObjectNameInformation, and ObOpenObjectByPointer().

◆ ObReferenceObject()

◆ ObReferenceObjectByHandle()

NTSTATUS ObReferenceObjectByHandle ( HANDLE  handle,
ACCESS_MASK  access,
POBJECT_TYPE  type,
KPROCESSOR_MODE  mode,
void **  ptr,
POBJECT_HANDLE_INFORMATION  info 
)

ObReferenceObjectByHandle (NTOSKRNL.EXE.@)

Definition at line 349 of file ntoskrnl.c.

References access(), object_header::handle, info, kernel_object_from_handle(), KernelMode, mode, ObReferenceObject(), status, and STATUS_NOT_IMPLEMENTED.

Referenced by PsLookupProcessByProcessId(), and PsLookupThreadByThreadId().

◆ ObReferenceObjectByName()

NTSTATUS ObReferenceObjectByName ( UNICODE_STRING ObjectName,
ULONG  Attributes,
ACCESS_STATE AccessState,
ACCESS_MASK  DesiredAccess,
POBJECT_TYPE  ObjectType,
KPROCESSOR_MODE  AccessMode,
void ParseContext,
void **  Object 
)

◆ ObReferenceObjectByPointer()

NTSTATUS ObReferenceObjectByPointer ( void obj,
ACCESS_MASK  access,
POBJECT_TYPE  type,
KPROCESSOR_MODE  mode 
)

ObReferenceObjectByPointer (NTOSKRNL.EXE.@)

Definition at line 2844 of file ntoskrnl.c.

References access(), mode, obj, and STATUS_NOT_IMPLEMENTED.

◆ ObRegisterCallbacks()

NTSTATUS ObRegisterCallbacks ( POB_CALLBACK_REGISTRATION  callback,
void **  handle 
)

ObRegisterCallbacks (NTOSKRNL.EXE.@)

Definition at line 2876 of file ntoskrnl.c.

References STATUS_SUCCESS, and UlongToHandle.

◆ ObUnRegisterCallbacks()

void ObUnRegisterCallbacks ( void handle)

ObUnRegisterCallbacks (NTOSKRNL.EXE.@)

Definition at line 2889 of file ntoskrnl.c.

◆ open_driver()

◆ ProbeForRead()

void ProbeForRead ( void address,
SIZE_T  length,
ULONG  alignment 
)

ProbeForRead (NTOSKRNL.EXE.@)

Definition at line 3368 of file ntoskrnl.c.

◆ ProbeForWrite()

void ProbeForWrite ( void address,
SIZE_T  length,
ULONG  alignment 
)

ProbeForWrite (NTOSKRNL.EXE.@)

Definition at line 3376 of file ntoskrnl.c.

◆ PsAcquireProcessExitSynchronization()

NTSTATUS PsAcquireProcessExitSynchronization ( PEPROCESS  process)

__chkstk (NTOSKRNL.@) PsAcquireProcessExitSynchronization (NTOSKRNL.@)

Definition at line 3860 of file ntoskrnl.c.

References STATUS_NOT_IMPLEMENTED.

◆ PsCreateSystemThread()

NTSTATUS PsCreateSystemThread ( PHANDLE  ThreadHandle,
ULONG  DesiredAccess,
POBJECT_ATTRIBUTES  ObjectAttributes,
HANDLE  ProcessHandle,
PCLIENT_ID  ClientId,
PKSTART_ROUTINE  StartRoutine,
PVOID  StartContext 
)

PsCreateSystemThread (NTOSKRNL.EXE.@)

Definition at line 2918 of file ntoskrnl.c.

References FALSE, GetCurrentProcess(), and RtlCreateUserThread().

◆ PsGetCurrentProcessId()

HANDLE PsGetCurrentProcessId ( void  )

PsGetCurrentProcessId (NTOSKRNL.EXE.@)

Definition at line 2932 of file ntoskrnl.c.

References _KTHREAD::id, KeGetCurrentThread(), and _CLIENT_ID::UniqueProcess.

Referenced by current_client_id().

◆ PsGetCurrentThreadId()

HANDLE PsGetCurrentThreadId ( void  )

PsGetCurrentThreadId (NTOSKRNL.EXE.@)

Definition at line 2941 of file ntoskrnl.c.

References _KTHREAD::id, KeGetCurrentThread(), and _CLIENT_ID::UniqueThread.

◆ PsGetProcessId()

HANDLE PsGetProcessId ( PEPROCESS  process)

PsGetProcessId (NTOSKRNL.@)

Definition at line 2283 of file ntoskrnl.c.

◆ PsGetProcessInheritedFromUniqueProcessId()

HANDLE PsGetProcessInheritedFromUniqueProcessId ( PEPROCESS  process)

PsGetProcessInheritedFromUniqueProcessId (NTOSKRNL.@)

Definition at line 2292 of file ntoskrnl.c.

References id.

◆ PsGetProcessSectionBaseAddress()

void* PsGetProcessSectionBaseAddress ( PEPROCESS  process)

◆ PsGetProcessWow64Process()

PVOID PsGetProcessWow64Process ( PEPROCESS  process)

PsGetProcessWow64Process (NTOSKRNL.@)

Definition at line 3943 of file ntoskrnl.c.

References NULL.

◆ PsGetThreadId()

HANDLE PsGetThreadId ( PETHREAD  thread)

PsGetThreadId (NTOSKRNL.@)

Definition at line 2387 of file ntoskrnl.c.

References thread::id.

◆ PsGetThreadProcessId()

HANDLE PsGetThreadProcessId ( PETHREAD  thread)

PsGetThreadProcessId (NTOSKRNL.@)

Definition at line 2396 of file ntoskrnl.c.

References thread::id.

◆ PsGetVersion()

BOOLEAN PsGetVersion ( ULONG major,
ULONG minor,
ULONG build,
UNICODE_STRING version 
)

PsGetVersion (NTOSKRNL.EXE.@)

Definition at line 2959 of file ntoskrnl.c.

References build(), info, len, lstrlenW(), major, memcpy(), min, minor, RtlGetVersion(), TRUE, and version.

◆ PsImpersonateClient()

NTSTATUS PsImpersonateClient ( PETHREAD  Thread,
PACCESS_TOKEN  Token,
BOOLEAN  CopyOnOpen,
BOOLEAN  EffectiveOnly,
SECURITY_IMPERSONATION_LEVEL  ImpersonationLevel 
)

PsImpersonateClient (NTOSKRNL.EXE.@)

Definition at line 2985 of file ntoskrnl.c.

References STATUS_NOT_IMPLEMENTED.

◆ PsIsSystemThread()

BOOLEAN PsIsSystemThread ( PETHREAD  thread)

PsIsSystemThread (NTOSKRNL.EXE.@)

Definition at line 2950 of file ntoskrnl.c.

References thread::process, and PsInitialSystemProcess.

◆ PsLookupProcessByProcessId()

NTSTATUS PsLookupProcessByProcessId ( HANDLE  processid,
PEPROCESS process 
)

PsLookupProcessByProcessId (NTOSKRNL.EXE.@)

Definition at line 2264 of file ntoskrnl.c.

References FALSE, HandleToUlong, KernelMode, NtClose(), NULL, ObReferenceObjectByHandle(), OpenProcess(), PROCESS_ALL_ACCESS, PsProcessType, status, and STATUS_INVALID_PARAMETER.

◆ PsLookupThreadByThreadId()

NTSTATUS PsLookupThreadByThreadId ( HANDLE  threadid,
PETHREAD thread 
)

◆ PsReferenceProcessFilePointer()

NTSTATUS PsReferenceProcessFilePointer ( PEPROCESS  process,
FILE_OBJECT **  file 
)

PsReferenceProcessFilePointer (NTOSKRNL.EXE.@)

Definition at line 3067 of file ntoskrnl.c.

References STATUS_NOT_IMPLEMENTED.

◆ PsReleaseProcessExitSynchronization()

void PsReleaseProcessExitSynchronization ( PEPROCESS  process)

PsReleaseProcessExitSynchronization (NTOSKRNL.@)

Definition at line 3870 of file ntoskrnl.c.

◆ PsRemoveCreateThreadNotifyRoutine()

NTSTATUS PsRemoveCreateThreadNotifyRoutine ( PCREATE_THREAD_NOTIFY_ROUTINE  NotifyRoutine)

PsRemoveCreateThreadNotifyRoutine (NTOSKRNL.EXE.@)

Definition at line 3036 of file ntoskrnl.c.

References STATUS_SUCCESS.

◆ PsRemoveLoadImageNotifyRoutine()

NTSTATUS PsRemoveLoadImageNotifyRoutine ( PLOAD_IMAGE_NOTIFY_ROUTINE  routine)

PsRemoveLoadImageNotifyRoutine (NTOSKRNL.EXE.@)

Definition at line 3046 of file ntoskrnl.c.

References load_image_notify_routine_count, load_image_notify_routines, memmove(), STATUS_PROCEDURE_NOT_FOUND, and STATUS_SUCCESS.

◆ PsResumeProcess()

NTSTATUS PsResumeProcess ( PEPROCESS  process)

PsResumeProcess (NTOSKRNL.EXE.@)

Definition at line 3097 of file ntoskrnl.c.

References STATUS_NOT_IMPLEMENTED.

◆ PsRevertToSelf()

void PsRevertToSelf ( void  )

PsRevertToSelf (NTOSKRNL.EXE.@)

Definition at line 2997 of file ntoskrnl.c.

◆ PsSetCreateProcessNotifyRoutine()

NTSTATUS PsSetCreateProcessNotifyRoutine ( PCREATE_PROCESS_NOTIFY_ROUTINE  callback,
BOOLEAN  remove 
)

PsSetCreateProcessNotifyRoutine (NTOSKRNL.EXE.@)

Definition at line 3006 of file ntoskrnl.c.

References remove(), and STATUS_SUCCESS.

◆ PsSetCreateProcessNotifyRoutineEx()

NTSTATUS PsSetCreateProcessNotifyRoutineEx ( PCREATE_PROCESS_NOTIFY_ROUTINE_EX  callback,
BOOLEAN  remove 
)

PsSetCreateProcessNotifyRoutineEx (NTOSKRNL.EXE.@)

Definition at line 3016 of file ntoskrnl.c.

References remove(), and STATUS_SUCCESS.

◆ PsSetCreateThreadNotifyRoutine()

NTSTATUS PsSetCreateThreadNotifyRoutine ( PCREATE_THREAD_NOTIFY_ROUTINE  NotifyRoutine)

PsSetCreateThreadNotifyRoutine (NTOSKRNL.EXE.@)

Definition at line 3026 of file ntoskrnl.c.

References STATUS_SUCCESS.

◆ PsSetLoadImageNotifyRoutine()

NTSTATUS PsSetLoadImageNotifyRoutine ( PLOAD_IMAGE_NOTIFY_ROUTINE  routine)

PsSetLoadImageNotifyRoutine (NTOSKRNL.EXE.@)

Definition at line 3223 of file ntoskrnl.c.

References ARRAY_SIZE, load_image_notify_routine_count, load_image_notify_routines, STATUS_INSUFFICIENT_RESOURCES, and STATUS_SUCCESS.

◆ PsSuspendProcess()

NTSTATUS PsSuspendProcess ( PEPROCESS  process)

PsSuspendProcess (NTOSKRNL.EXE.@)

Definition at line 3087 of file ntoskrnl.c.

References STATUS_NOT_IMPLEMENTED.

◆ PsTerminateSystemThread()

NTSTATUS PsTerminateSystemThread ( NTSTATUS  status)

PsTerminateSystemThread (NTOSKRNL.EXE.@)

Definition at line 3077 of file ntoskrnl.c.

References ExitThread(), and status.

◆ READ_REGISTER_BUFFER_UCHAR()

void READ_REGISTER_BUFFER_UCHAR ( PUCHAR  Register,
PUCHAR  Buffer,
ULONG  Count 
)

READ_REGISTER_BUFFER_UCHAR (NTOSKRNL.EXE.@)

Definition at line 3197 of file ntoskrnl.c.

◆ RtlIsNtDdiVersionAvailable()

BOOLEAN RtlIsNtDdiVersionAvailable ( ULONG  version)

RtlIsNtDdiVersionAvailable (NTOSKRNL.EXE.@)

Definition at line 4052 of file ntoskrnl.c.

References FALSE, and version.

◆ run_work_item_worker()

static void run_work_item_worker ( TP_CALLBACK_INSTANCE instance,
void context 
)
static

Definition at line 1164 of file ntoskrnl.c.

References context, and ObDereferenceObject().

Referenced by IoQueueWorkItem().

◆ SeLocateProcessImageName()

NTSTATUS SeLocateProcessImageName ( PEPROCESS  process,
UNICODE_STRING **  image_name 
)

SeLocateProcessImageName (NTOSKRNL.@)

Definition at line 3916 of file ntoskrnl.c.

References NULL, and STATUS_NOT_IMPLEMENTED.

◆ SePrivilegeCheck()

BOOLEAN SePrivilegeCheck ( PRIVILEGE_SET privileges,
SECURITY_SUBJECT_CONTEXT context,
KPROCESSOR_MODE  mode 
)

SePrivilegeCheck (NTOSKRNL.@)

Definition at line 3907 of file ntoskrnl.c.

References mode, and TRUE.

◆ SeSinglePrivilegeCheck()

BOOLEAN SeSinglePrivilegeCheck ( LUID  privilege,
KPROCESSOR_MODE  mode 
)

SeSinglePrivilegeCheck (NTOSKRNL.@)

Definition at line 3897 of file ntoskrnl.c.

References mode, and TRUE.

◆ set_service_status()

static void set_service_status ( SERVICE_STATUS_HANDLE  handle,
DWORD  state,
DWORD  accepted 
)
static

◆ unhandled_irp()

static NTSTATUS unhandled_irp ( DEVICE_OBJECT device,
IRP irp 
)
static

◆ unload_driver()

◆ vectored_handler()

LONG vectored_handler ( EXCEPTION_POINTERS ptrs)

Referenced by DllMain().

◆ wine_drivers_rb_compare()

static int wine_drivers_rb_compare ( const void key,
const struct wine_rb_entry entry 
)
static

Definition at line 101 of file ntoskrnl.c.

◆ wine_ntoskrnl_main_loop()

◆ ZwLoadDriver()

◆ ZwUnloadDriver()

NTSTATUS ZwUnloadDriver ( const UNICODE_STRING service_name)

Variable Documentation

◆ __wine_dbch___default

struct __wine_debug_channel* const __wine_dbch___default = &__wine_dbch_ntoskrnl
static

Definition at line 52 of file ntoskrnl.c.

◆ __wine_dbch_ntoskrnl

struct __wine_debug_channel __wine_dbch_ntoskrnl = { 0xff, "ntoskrnl" }
static

Definition at line 1 of file ntoskrnl.c.

◆ __wine_dbch_relay

struct __wine_debug_channel __wine_dbch_relay = { 0xff, "relay" }
static

Definition at line 52 of file ntoskrnl.c.

◆ client_tid

DWORD client_tid
static

Definition at line 84 of file ntoskrnl.c.

Referenced by KeGetCurrentThread(), and wine_ntoskrnl_main_loop().

◆ configuration_information

CONFIGURATION_INFORMATION configuration_information
static

Definition at line 1734 of file ntoskrnl.c.

Referenced by IoGetConfigurationInformation().

◆ device_type

Initial value:
=
{
}
static const WCHAR device_type_name[]
Definition: ntoskrnl.c:1477

Definition at line 1477 of file ntoskrnl.c.

◆ device_type_name

const WCHAR device_type_name[] = {'D','e','v','i','c','e',0}
static

Definition at line 1477 of file ntoskrnl.c.

◆ dispatch_funcs

const dispatch_func dispatch_funcs[]
static
Initial value:
=
{
((void*)0) ,
}
static NTSTATUS dispatch_write(struct dispatch_context *context)
Definition: ntoskrnl.c:635
static NTSTATUS dispatch_free(struct dispatch_context *context)
Definition: ntoskrnl.c:763
static NTSTATUS dispatch_flush(struct dispatch_context *context)
Definition: ntoskrnl.c:671
static NTSTATUS dispatch_read(struct dispatch_context *context)
Definition: ntoskrnl.c:593
static NTSTATUS dispatch_close(struct dispatch_context *context)
Definition: ntoskrnl.c:555
static NTSTATUS dispatch_ioctl(struct dispatch_context *context)
Definition: ntoskrnl.c:700
static NTSTATUS dispatch_create(struct dispatch_context *context)
Definition: ntoskrnl.c:510
static NTSTATUS dispatch_cancel(struct dispatch_context *context)
Definition: ntoskrnl.c:771

Definition at line 785 of file ntoskrnl.c.

Referenced by wine_ntoskrnl_main_loop().

◆ dpc_call_cs

static CRITICAL_SECTION dpc_call_cs = { & dpc_call_cs_debug, -1, 0, 0, 0, 0 }
static

Definition at line 77 of file ntoskrnl.c.

Referenced by KeGenericCallDpc().

◆ dpc_call_cs_debug

CRITICAL_SECTION_DEBUG dpc_call_cs_debug = { 0, 0, & dpc_call_cs , { & dpc_call_cs_debug.ProcessLocksList, & dpc_call_cs_debug.ProcessLocksList }, 0, 0, { (DWORD_PTR)(__FILE__ ": " "dpc_call_cs") }}
static

Definition at line 77 of file ntoskrnl.c.

◆ dpc_call_tls_index

DWORD dpc_call_tls_index
static

Definition at line 78 of file ntoskrnl.c.

Referenced by DllMain(), generic_call_dpc_callback(), and KeSignalCallDpcSynchronize().

◆ dpc_call_tp

TP_POOL* dpc_call_tp
static

Definition at line 75 of file ntoskrnl.c.

Referenced by DllMain(), and KeGenericCallDpc().

◆ dpc_call_tpe

TP_CALLBACK_ENVIRON dpc_call_tpe
static

Definition at line 76 of file ntoskrnl.c.

Referenced by KeGenericCallDpc().

◆ driver_type

◆ driver_type_name

const WCHAR driver_type_name[] = {'D','r','i','v','e','r',0}
static

Definition at line 1400 of file ntoskrnl.c.

◆ drivers_cs

static CRITICAL_SECTION drivers_cs = { & drivers_cs_debug, -1, 0, 0, 0, 0 }
static

Definition at line 111 of file ntoskrnl.c.

Referenced by IoCreateDriver(), IoDeleteDriver(), and ObReferenceObjectByName().

◆ drivers_cs_debug

CRITICAL_SECTION_DEBUG drivers_cs_debug = { 0, 0, & drivers_cs , { & drivers_cs_debug.ProcessLocksList, & drivers_cs_debug.ProcessLocksList }, 0, 0, { (DWORD_PTR)(__FILE__ ": " "drivers_cs") }}
static

Definition at line 111 of file ntoskrnl.c.

◆ file_type

Initial value:
= {
}
static void * create_file_object(HANDLE handle)
Definition: ntoskrnl.c:415
static const WCHAR file_type_name[]
Definition: ntoskrnl.c:406

Definition at line 406 of file ntoskrnl.c.

◆ file_type_name

const WCHAR file_type_name[] = {'F','i','l','e',0}
static

Definition at line 406 of file ntoskrnl.c.

◆ handle_map_cs

static CRITICAL_SECTION handle_map_cs = { & handle_map_cs_debug, -1, 0, 0, 0, 0 }
static

Definition at line 271 of file ntoskrnl.c.

Referenced by kernel_object_from_handle().

◆ handle_map_cs_debug

CRITICAL_SECTION_DEBUG handle_map_cs_debug = { 0, 0, & handle_map_cs , { & handle_map_cs_debug.ProcessLocksList, & handle_map_cs_debug.ProcessLocksList }, 0, 0, { (DWORD_PTR)(__FILE__ ": " "handle_map_cs") }}
static

Definition at line 271 of file ntoskrnl.c.

◆ InitSafeBootMode

ULONG InitSafeBootMode = 0

Definition at line 56 of file ntoskrnl.c.

◆ IoDeviceObjectType

POBJECT_TYPE IoDeviceObjectType = &device_type

Definition at line 1484 of file ntoskrnl.c.

Referenced by IoCreateDevice().

◆ IoDriverObjectType

POBJECT_TYPE IoDriverObjectType = &driver_type

Definition at line 1409 of file ntoskrnl.c.

Referenced by IoCreateDriver().

◆ IoFileObjectType

POBJECT_TYPE IoFileObjectType = &file_type

Definition at line 413 of file ntoskrnl.c.

Referenced by create_file_object(), and dispatch_create().

◆ irp_completion_cs

static CRITICAL_SECTION irp_completion_cs = { & irp_completion_cs_debug, -1, 0, 0, 0, 0 }
static

Definition at line 424 of file ntoskrnl.c.

Referenced by dispatch_cancel(), and dispatch_irp_completion().

◆ irp_completion_cs_debug

CRITICAL_SECTION_DEBUG irp_completion_cs_debug = { 0, 0, & irp_completion_cs , { & irp_completion_cs_debug.ProcessLocksList, & irp_completion_cs_debug.ProcessLocksList }, 0, 0, { (DWORD_PTR)(__FILE__ ": " "irp_completion_cs") }}
static

Definition at line 424 of file ntoskrnl.c.

◆ KdDebuggerEnabled

BOOLEAN KdDebuggerEnabled = 0

Definition at line 55 of file ntoskrnl.c.

Referenced by KdRefreshDebuggerNotPresent().

◆ KeServiceDescriptorTable

KSERVICE_TABLE_DESCRIPTOR KeServiceDescriptorTable[4] = { { 0 } }

Definition at line 71 of file ntoskrnl.c.

◆ KeTickCount

KSYSTEM_TIME KeTickCount = { 0, 0, 0 }

Definition at line 61 of file ntoskrnl.c.

Referenced by KeQueryTickCount().

◆ known_types

const POBJECT_TYPE* known_types[]
static
Initial value:
=
{
}
POBJECT_TYPE IoDriverObjectType
Definition: ntoskrnl.c:1409
POBJECT_TYPE IoDeviceObjectType
Definition: ntoskrnl.c:1484
POBJECT_TYPE PsThreadType
Definition: ntoskrnl.c:2333
POBJECT_TYPE IoFileObjectType
Definition: ntoskrnl.c:413
POBJECT_TYPE PsProcessType
Definition: ntoskrnl.c:2250
POBJECT_TYPE SeTokenObjectType
Definition: ntoskrnl.c:3986
POBJECT_TYPE ExEventObjectType
Definition: sync.c:217
POBJECT_TYPE ExSemaphoreObjectType
Definition: sync.c:379

Definition at line 259 of file ntoskrnl.c.

Referenced by kernel_object_from_handle().

◆ ldr_notify_cookie

void* ldr_notify_cookie
static

Definition at line 88 of file ntoskrnl.c.

Referenced by DllMain().

◆ load_image_notify_routine_count

unsigned int load_image_notify_routine_count
static

◆ load_image_notify_routines

PLOAD_IMAGE_NOTIFY_ROUTINE load_image_notify_routines[8]
static

◆ NtBuildNumber

USHORT NtBuildNumber = 0

Definition at line 57 of file ntoskrnl.c.

Referenced by DllMain().

◆ ntoskrnl_heap

HANDLE ntoskrnl_heap
static

Definition at line 86 of file ntoskrnl.c.

Referenced by DllMain(), ExAllocatePoolWithTag(), and ExFreePoolWithTag().

◆ obref_cs

static CRITICAL_SECTION obref_cs = { & obref_cs_debug, -1, 0, 0, 0, 0 }
static

Definition at line 180 of file ntoskrnl.c.

Referenced by ObDereferenceObject(), and ObReferenceObject().

◆ obref_cs_debug

CRITICAL_SECTION_DEBUG obref_cs_debug = { 0, 0, & obref_cs , { & obref_cs_debug.ProcessLocksList, & obref_cs_debug.ProcessLocksList }, 0, 0, { (DWORD_PTR)(__FILE__ ": " "obref_cs") }}
static

Definition at line 180 of file ntoskrnl.c.

◆ process_type

struct _OBJECT_TYPE process_type
static
Initial value:
=
{
}
static void * create_process_object(HANDLE handle)
Definition: ntoskrnl.c:2229
static const WCHAR process_type_name[]
Definition: ntoskrnl.c:2242

Definition at line 2242 of file ntoskrnl.c.

◆ process_type_name

const WCHAR process_type_name[] = {'P','r','o','c','e','s','s',0}
static

Definition at line 2242 of file ntoskrnl.c.

◆ PsInitialSystemProcess

PEPROCESS PsInitialSystemProcess = ((void*)0)

Definition at line 845 of file ntoskrnl.c.

Referenced by PsIsSystemThread(), and wine_ntoskrnl_main_loop().

◆ PsProcessType

POBJECT_TYPE PsProcessType = &process_type

◆ PsThreadType

POBJECT_TYPE PsThreadType = &thread_type

Definition at line 2333 of file ntoskrnl.c.

Referenced by create_thread_object(), KeGetCurrentThread(), and PsLookupThreadByThreadId().

◆ request_thread

DWORD request_thread
static

Definition at line 81 of file ntoskrnl.c.

Referenced by KeGetCurrentThread(), and wine_ntoskrnl_main_loop().

◆ SeTokenObjectType

POBJECT_TYPE SeTokenObjectType = &token_type

Definition at line 3986 of file ntoskrnl.c.

◆ thread_type

struct _OBJECT_TYPE thread_type
static
Initial value:
=
{
}
static void * create_thread_object(HANDLE handle)
Definition: ntoskrnl.c:2299
static const WCHAR thread_type_name[]
Definition: ntoskrnl.c:2325

Definition at line 2325 of file ntoskrnl.c.

◆ thread_type_name

const WCHAR thread_type_name[] = {'T','h','r','e','a','d',0}
static

Definition at line 2325 of file ntoskrnl.c.

◆ token_type

struct _OBJECT_TYPE token_type
static
Initial value:
=
{
}
static const WCHAR token_type_name[]
Definition: ntoskrnl.c:3979

Definition at line 3979 of file ntoskrnl.c.

Referenced by convert_to_wined3d_declaration(), and d3d8_vertex_shader_init().

◆ token_type_name

const WCHAR token_type_name[] = {'T','o','k','e','n',0}
static

Definition at line 3979 of file ntoskrnl.c.

◆ wine_drivers