NTSTATUS
KeUserModeCallback(
  IN  ULONG ApiNumber,
  IN  PVOID InputBuffer,
  IN  ULONG InputLength,
  OUT PVOID *OutputBuffer,
  IN  PULONG OutputLength
  );

Routine Description:

    This function call out from kernel mode to a user mode function.

Arguments:

    ApiNumber - Supplies the API number.

    InputBuffer - Supplies a pointer to a structure that is copied
        to the user stack.

    InputLength - Supplies the length of the input structure.

    Outputbuffer - Supplies a pointer to a variable that receives
        the address of the output buffer.

    Outputlength - Supplies a pointer to a variable that receives
        the length of the output buffer.

Return Value:

    If the callout cannot be executed, then an error status is
    returned. Otherwise, the status returned by the callback function
    is returned.