DevHlp Function Cross-reference

The following table is a cross-reference for DevHlp function names with request code. The request code is loaded into the DL register before calling Device_Help.

┌──────────────────────────────┬─────┬────────────────────────────────────────┐
│Function NameCodeDescription                             │
├──────────────────────────────┼─────┼────────────────────────────────────────┤
│DevHlp_SchedClock             │0x0  │Called each timer tick                  │
├──────────────────────────────┼─────┼────────────────────────────────────────┤
│DevHlp_DevDone                │0x1  │Device I/O complete                     │
├──────────────────────────────┼─────┼────────────────────────────────────────┤
│DevHlp_Yield                  │0x2  │yield CPU if resched set                │
├──────────────────────────────┼─────┼────────────────────────────────────────┤
│DevHlp_TCYield                │0x3  │yield to time critical task             │
├──────────────────────────────┼─────┼────────────────────────────────────────┤
│DevHlp_ProcBlock              │0x4  │Block on event                          │
├──────────────────────────────┼─────┼────────────────────────────────────────┤
│DevHlp_ProcRun                │0x5  │Unblock process                         │
├──────────────────────────────┼─────┼────────────────────────────────────────┤
│DevHlp_SemRequest             │0x6  │claim a semaphore                       │
├──────────────────────────────┼─────┼────────────────────────────────────────┤
│DevHlp_SemClear               │0x7  │release a semaphore                     │
├──────────────────────────────┼─────┼────────────────────────────────────────┤
│DevHlp_SemHandle              │0x8  │obtain a semaphore handle               │
├──────────────────────────────┼─────┼────────────────────────────────────────┤
│DevHlp_PushRequest            │0x9  │Push the request                        │
├──────────────────────────────┼─────┼────────────────────────────────────────┤
│DevHlp_PullRequest            │0xA  │Pull next request from Q                │
├──────────────────────────────┼─────┼────────────────────────────────────────┤
│DevHlp_PullParticular         │0xB  │Pull a specific request                 │
├──────────────────────────────┼─────┼────────────────────────────────────────┤
│DevHlp_SortRequest            │0xC  │Push request in sorted order            │
├──────────────────────────────┼─────┼────────────────────────────────────────┤
│DevHlp_AllocReqPacket         │0xD  │allocate request packet                 │
├──────────────────────────────┼─────┼────────────────────────────────────────┤
│DevHlp_FreeReqPacket          │0xE  │free request packet                     │
├──────────────────────────────┼─────┼────────────────────────────────────────┤
│DevHlp_QueueInit              │0xF  │Init/Clear char queue                   │
├──────────────────────────────┼─────┼────────────────────────────────────────┤
│DevHlp_QueueFlush             │0x10 │flush queue                             │
├──────────────────────────────┼─────┼────────────────────────────────────────┤
│DevHlp_QueueWrite             │0x11 │Put a char in the queue                 │
├──────────────────────────────┼─────┼────────────────────────────────────────┤
│DevHlp_QueueRead              │0x12 │Get a char from the queue               │
├──────────────────────────────┼─────┼────────────────────────────────────────┤
│DevHlp_Lock                   │0x13 │Lock segment                            │
├──────────────────────────────┼─────┼────────────────────────────────────────┤
│DevHlp_Unlock                 │0x14 │Unlock segment                          │
├──────────────────────────────┼─────┼────────────────────────────────────────┤
│DevHlp_PhysToVirt             │0x15 │convert physical address to virtual     │
├──────────────────────────────┼─────┼────────────────────────────────────────┤
│DevHlp_VirtToPhys             │0x16 │convert virtual address to physical     │
├──────────────────────────────┼─────┼────────────────────────────────────────┤
│DevHlp_PhysToUVirt            │0x17 │convert physical to LDT                 │
├──────────────────────────────┼─────┼────────────────────────────────────────┤
│DevHlp_AllocPhys              │0x18 │allocate physical memory                │
├──────────────────────────────┼─────┼────────────────────────────────────────┤
│DevHlp_FreePhys               │0x19 │free physical memory                    │
├──────────────────────────────┼─────┼────────────────────────────────────────┤
│DevHlp_SetROMVector           │0x1A │set a ROM service routine vector        │
├──────────────────────────────┼─────┼────────────────────────────────────────┤
│DevHlp_SetIRQ                 │0x1B │set an IRQ interrupt                    │
├──────────────────────────────┼─────┼────────────────────────────────────────┤
│DevHlp_UnSetIRQ               │0x1C │unset an IRQ interrupt                  │
├──────────────────────────────┼─────┼────────────────────────────────────────┤
│DevHlp_SetTimer               │0x1D │set timer request handler               │
├──────────────────────────────┼─────┼────────────────────────────────────────┤
│DevHlp_ResetTimer             │0x1E │unset timer request handler             │
├──────────────────────────────┼─────┼────────────────────────────────────────┤
│DevHlp_MonitorCreate          │0x1F │create a monitor                        │
├──────────────────────────────┼─────┼────────────────────────────────────────┤
│DevHlp_Register               │0x20 │install a monitor                       │
├──────────────────────────────┼─────┼────────────────────────────────────────┤
│DevHlp_DeRegister             │0x21 │remove a monitor                        │
├──────────────────────────────┼─────┼────────────────────────────────────────┤
│DevHlp_MonWrite               │0x22 │pass data records to monitor            │
├──────────────────────────────┼─────┼────────────────────────────────────────┤
│DevHlp_MonFlush               │0x23 │remove all data from stream             │
├──────────────────────────────┼─────┼────────────────────────────────────────┤
│DevHlp_GetDOSVar              │0x24 │Return pointer to DOS variable          │
├──────────────────────────────┼─────┼────────────────────────────────────────┤
│DevHlp_SendEvent              │0x25 │an event occurred                       │
├──────────────────────────────┼─────┼────────────────────────────────────────┤
│DevHlp_ROMCritSection         │0x26 │ROM Critical Section                    │
├──────────────────────────────┼─────┼────────────────────────────────────────┤
│DevHlp_VerifyAccess           │0x27 │Verify access to memory                 │
├──────────────────────────────┼─────┼────────────────────────────────────────┤
│DevHlp_RAS                    │0x28 │Put info in RAS trace buffer            │
├──────────────────────────────┼─────┼────────────────────────────────────────┤
│DevHlp_ABIOSGetParms          │0x29 │Get ABIOS Calling Parms                 │
├──────────────────────────────┼─────┼────────────────────────────────────────┤
│DevHlp_AttachDD               │0x2A │Attach to a device driver               │
├──────────────────────────────┼─────┼────────────────────────────────────────┤
│DevHlp_InternalError          │0x2B │Signal an internal error                │
├──────────────────────────────┼─────┼────────────────────────────────────────┤
│DevHlp_ModifyPriority         │0x2C │Undocumented (used by PM)               │
├──────────────────────────────┼─────┼────────────────────────────────────────┤
│DevHlp_AllocGDTSelector       │0x2D │Allocate GDT Selectors                  │
├──────────────────────────────┼─────┼────────────────────────────────────────┤
│DevHlp_PhysToGDTSelector      │0x2E │Convert phys addr to GDT sel            │
├──────────────────────────────┼─────┼────────────────────────────────────────┤
│DevHlp_RealToProt             │0x2F │Change from real to protected mode      │
├──────────────────────────────┼─────┼────────────────────────────────────────┤
│DevHlp_ProtToReal             │0x30 │Change from protected to real mode      │
├──────────────────────────────┼─────┼────────────────────────────────────────┤
│DevHlp_EOI                    │0x31 │Send EOI to PIC                         │
├──────────────────────────────┼─────┼────────────────────────────────────────┤
│DevHlp_UnPhysToVirt           │0x32 │mark completion of PhysToVirt           │
├──────────────────────────────┼─────┼────────────────────────────────────────┤
│DevHlp_TickCount              │0x33 │modify timer                            │
├──────────────────────────────┼─────┼────────────────────────────────────────┤
│DevHlp_GetLIDEntry            │0x34 │Obtain Logical ID                       │
├──────────────────────────────┼─────┼────────────────────────────────────────┤
│DevHlp_FreeLIDEntry           │0x35 │Release Logical ID                      │
├──────────────────────────────┼─────┼────────────────────────────────────────┤
│DevHlp_ABIOSCall              │0x36 │Call ABIOS                              │
├──────────────────────────────┼─────┼────────────────────────────────────────┤
│DevHlp_ABIOSCommonEntry       │0x37 │Invoke Common Entry Point               │
├──────────────────────────────┼─────┼────────────────────────────────────────┤
│DevHlp_GetDeviceBlock         │0x38 │Get ABIOS Device Block                  │
├──────────────────────────────┼─────┼────────────────────────────────────────┤
│DevHlp_RegisterStackUsag      │0x3A │Register for stack usage                │
├──────────────────────────────┼─────┼────────────────────────────────────────┤
│DevHlp_LogEntry               │0x3B │Place data in log buffer                │
├──────────────────────────────┼─────┼────────────────────────────────────────┤
│DevHlp_VideoPause             │0x3C │Video pause on/off      - D607          │
├──────────────────────────────┼─────┼────────────────────────────────────────┤
│DevHlp_Save_Message           │0x3D │Save msg in SysInit Message Table       │
├──────────────────────────────┼─────┼────────────────────────────────────────┤
│DevHlp_SegRealloc             │0x3E │Realloc DD protect mode segment         │
├──────────────────────────────┼─────┼────────────────────────────────────────┤
│DevHlp_PutWaitingQueue        │0x3F │Put I/O request on waiting queue        │
├──────────────────────────────┼─────┼────────────────────────────────────────┤
│DevHlp_GetWaitingQueue        │0x40 │Get I/O request from waiting queue      │
├──────────────────────────────┼─────┼────────────────────────────────────────┤
│DevHlp_PhysToSys              │0x41 │Address conversion for the AOX          │
├──────────────────────────────┼─────┼────────────────────────────────────────┤
│DevHlp_PhysToSysHook          │0x42 │Address conversion for the AOX          │
├──────────────────────────────┼─────┼────────────────────────────────────────┤
│DevHlp_RegisterDeviceClass    │0x43 │Register DC entry point                 │
├──────────────────────────────┼─────┼────────────────────────────────────────┤
│DevHlp_RegisterPDD            │0x50 │Register PDD entry point with VDM       │
│                              │     │manager for later PDD-VDD communication │
├──────────────────────────────┼─────┼────────────────────────────────────────┤
│DevHlp_RegisterBeep           │0x51 │register PTD beep service entry point   │
│                              │     │with kernel                             │
├──────────────────────────────┼─────┼────────────────────────────────────────┤
│DevHlp_Beep                   │0x52 │preempt beep service via PTD            │
├──────────────────────────────┼─────┼────────────────────────────────────────┤
│DevHlp_FreeGDTSelector        │0x53 │Free allocated GDT selector             │
├──────────────────────────────┼─────┼────────────────────────────────────────┤
│DevHlp_PhysToGDTSel           │0x54 │Convert Phys Addr to GDT sel with given │
│                              │     │access                                  │
├──────────────────────────────┼─────┼────────────────────────────────────────┤
│DevHlp_VMLock                 │0x55 │Lock linear address range               │
├──────────────────────────────┼─────┼────────────────────────────────────────┤
│DevHlp_VMUnlock               │0x56 │Unlock address range                    │
├──────────────────────────────┼─────┼────────────────────────────────────────┤
│DevHlp_VMAlloc                │0x56 │Allocate memory                         │
├──────────────────────────────┼─────┼────────────────────────────────────────┤
│DevHlp_VMFree                 │0x58 │Free memory or mapping                  │
├──────────────────────────────┼─────┼────────────────────────────────────────┤
│DevHlp_VMProcessToGlobal      │0x59 │Create global mapping to process memory │
├──────────────────────────────┼─────┼────────────────────────────────────────┤
│DevHlp_VMGlobalToProcess      │0x5A │Create process mapping to global memory │
├──────────────────────────────┼─────┼────────────────────────────────────────┤
│DevHlp_VirtToLin              │0x5B │Convert virtual address to linear       │
├──────────────────────────────┼─────┼────────────────────────────────────────┤
│DevHlp_LinToGDTSelector       │0x5C │Convert linear address to virtual       │
├──────────────────────────────┼─────┼────────────────────────────────────────┤
│DevHlp_GetDescInfo            │0x5D │Return descriptor information           │
├──────────────────────────────┼─────┼────────────────────────────────────────┤
│DevHlp_LinToPageList          │0x5E │build pagelist array from lin addr      │
├──────────────────────────────┼─────┼────────────────────────────────────────┤
│DevHlp_PageListToLin          │0x5F │map page list array to lin addr         │
├──────────────────────────────┼─────┼────────────────────────────────────────┤
│DevHlp_PageListToGDTSelector  │0x60 │map page list array to GDT sel.         │
├──────────────────────────────┼─────┼────────────────────────────────────────┤
│DevHlp_RegisterTmrDD          │0x61 │Register TMR Device Driver.             │
├──────────────────────────────┼─────┼────────────────────────────────────────┤
│DevHlp_RegisterPerfCtrs       │0x62 │Register device driver perf. ctrs (PVW).│
├──────────────────────────────┼─────┼────────────────────────────────────────┤
│DevHlp_AllocateCtxHook        │0x63 │Allocate a context hook                 │
├──────────────────────────────┼─────┼────────────────────────────────────────┤
│DevHlp_FreeCtxHook            │0x64 │Free a context hook                     │
├──────────────────────────────┼─────┼────────────────────────────────────────┤
│DevHlp_ArmCtxHook             │0x65 │Arm a context hook                      │
├──────────────────────────────┼─────┼────────────────────────────────────────┤
│DevHlp_VMSetMem               │0x66 │commit/decommit memory                  │
├──────────────────────────────┼─────┼────────────────────────────────────────┤
│DevHlp_OpenEventSem           │0x67 │open an event semaphore                 │
├──────────────────────────────┼─────┼────────────────────────────────────────┤
│DevHlp_CloseEventSem          │0x68 │close an event semaphore                │
├──────────────────────────────┼─────┼────────────────────────────────────────┤
│DevHlp_PostEventSem           │0x69 │post an event semaphore                 │
├──────────────────────────────┼─────┼────────────────────────────────────────┤
│DevHlp_ResetEventSem          │0x6A │reset an event semaphore                │
├──────────────────────────────┼─────┼────────────────────────────────────────┤
│DevHlp_RegisterFreq           │0x6B │register PTD freq service entry point   │
│                              │     │with kernel                             │
├──────────────────────────────┼─────┼────────────────────────────────────────┤
│DevHlp_DynamicAPI             │0x6C │add a dynamic API                       │
├──────────────────────────────┼─────┼────────────────────────────────────────┤
│DevHlp_ProcRun2               │0x6D │Unblock process via procrun2            │
├──────────────────────────────┼─────┼────────────────────────────────────────┤
│DevHlp_CreateInt13VDM         │0x6E │Create Int13 VDM (Internal Only)        │
│                              │     │OEMINT13                                │
├──────────────────────────────┼─────┼────────────────────────────────────────┤
│DevHlp_RegisterKrnlExit       │0x6F │Used to capture Kernel Exits   F78693   │
├──────────────────────────────┼─────┼────────────────────────────────────────┤
│DevHlp_PMPostEventSem         │0x70 │PM Post Event Semaphore                 │
├──────────────────────────────┼─────┼────────────────────────────────────────┤
│DevHlp_AcquireSpinLock        │0x71 │acquire Spin Lock (SMP only)            │
├──────────────────────────────┼─────┼────────────────────────────────────────┤
│DevHlp_ReleaseSpinLock        │0x72 │release Spin Lock (SMP only)            │
├──────────────────────────────┼─────┼────────────────────────────────────────┤
│DevHlp_InitIntMouseCursorData │0x73 │Initialize Mouse/Cursor Data (SMP only) │
├──────────────────────────────┼─────┼────────────────────────────────────────┤
│DevHlp_StartIntMouseCursor    │0x74 │Start Int Time Mouse/Cursor (SMP only)  │
├──────────────────────────────┼─────┼────────────────────────────────────────┤
│DevHlp_EndIntMouseCursor      │0x75 │End Int Time Mouse/Cursor (SMP only)    │
├──────────────────────────────┼─────┼────────────────────────────────────────┤
│DevHlp_Port_IO                │0x76 │Port I/O (SMP only)                     │
├──────────────────────────────┼─────┼────────────────────────────────────────┤
│DevHlp_SetIRQMask             │0x77 │Set/Unset an IRQ Mask (SMP only)        │
├──────────────────────────────┼─────┼────────────────────────────────────────┤
│DevHlp_GetIRQMask             │0x78 │Retrieve an IRQ Mask state (SMP only)   │
├──────────────────────────────┼─────┼────────────────────────────────────────┤
│DevHlp_CreateSpinLock         │0x79 │create Spin Lock (SMP only)             │
├──────────────────────────────┼─────┼────────────────────────────────────────┤
│DevHlp_FreeSpinLock           │0x7A │free Spin Lock (SMP only)               │
├──────────────────────────────┼─────┼────────────────────────────────────────┤
│DevHlp_KillProc               │0x7D │Kill Proc                               │
├──────────────────────────────┼─────┼────────────────────────────────────────┤
│DevHlp_QSysState              │0x7E │Query System State                      │
├──────────────────────────────┼─────┼────────────────────────────────────────┤
│DevHlp_OpenFile               │0x7F │Ring-0 File system Write                │
├──────────────────────────────┼─────┼────────────────────────────────────────┤
│DevHlp_CloseFile              │0x80 │Ring-0 File system Seek                 │
├──────────────────────────────┼─────┼────────────────────────────────────────┤
│DevHlp_ReadFile               │0x81 │Ring-0 File system Read                 │
├──────────────────────────────┼─────┼────────────────────────────────────────┤
│DevHlp_ReadFileAt             │0x82 │File system Read at (seek)              │
├──────────────────────────────┼─────┼────────────────────────────────────────┤
│DevHlp_RegisterKDD            │0x83 │Register Driver with kernel debugger    │
└──────────────────────────────┴─────┴────────────────────────────────────────┘


[Back: VM System Object Owner IDs]
[Next: Device Driver Strategy Commands Cross-reference]