VMS Help  —  System Services, $CMKRNL 64
    On Alpha and Integrity server systems, changes the access mode of
    the calling process to kernel mode. This service allows a process
    to change its access mode to kernel, execute a specified routine,
    and then return to the access mode in effect before the call was
    issued.

    This service accepts 64-bit addresses.

    Format

      SYS$CMKRNL_64  routin_64 ,arglst_64

    C Prototype

      int sys$cmkrnl_64  (int (*routin_64)(__unknown_params),

                         unsigned __int64 *arglst_64);

1  –  Arguments

 routin_64

    OpenVMS usage:procedure
    type:         procedure value
    access:       call without stack unwinding
    mechanism:    by 32- or 64-bit reference
    Routine to be executed while the process is in kernel mode. The
    routin_64 argument is the 32- or 64-bit address of this routine.

 arglst_64

    OpenVMS usage:arg_list
    type:         quadword (unsigned)
    access:       read only
    mechanism:    by 32- or 64-bit reference
    Quadword argument list to be passed to the routine specified
    by the routin_64 argument. The routin_64 argument is the 32- or
    64-bit address of this routine.

    If the arglst value is nonzero and is not accessible as an
    address or if the routine is inaccessible, the service returns
    SS$_ACCVIO.

    Alpha and Integrity server systems require a pointer to a valid
    argument list or a value of 0 in the arglst_64 argument. This
    means that the arglst_64 argument, if nonzero, must contain
    an accessible virtual address for an argument list, the first
    quadword of which must be a number between 0 and 255 specifying
    the number of quadwords that follow it on the list.
Close Help