KernelIoControl

This function is called to retrieve OEM/device specific information The implementation of the IOCTLS is dependent on the OEM.

This IOCTL returns information supplied by the OEM about the processor.

BOOL KernelIoControl (
DWORD dwIoControlCode,
LPVOID lpInBuf,
DWORD nInBufSize,
LPVOID lpOutBuf,
DWORD nOutBufSize,
LPDWORD lpBytesReturned)

Parameters

  • dwIoControlCode
    Set to IOCTL_PROCESSOR_INFORMATION.
  • lpInBuf
    Set to NULL.
  • nInBufSize
    Set to 0.
  • lpOutBuf
    Pointer to the output buffer. This is set to a buffer allocated to hold the PROCESSOR_INFO structure.
  • nOutBufSize
    Maximum number of bytes that can be returned in lpOutBuf. Set to sizeof(PROCESSOR_INFO).
  • lpBytesReturned
    Actual number of bytes returned in lpOutBuf.

Return Values

Returns TRUE if the processor information was found; otherwise returns FALSE.

Remarks

An OEM may elect to provide information about the microprocessor. If implemented, the PROCESSOR_INFO structure must contain the following information.

Flag Description
PROCESSOR_FLOATINGPOINT The CPU has hardware floating point enabled. If SYSTEM_INFO.WprocessorLevel indicates that the current CPU is a MIPS R4300 or x86 (with hardware floating point) then this flag is set. This bit is only relative to the CPUs listed above in the 3.0 release of Windows CE.
PROCESSOR_DSP The CPU has DSP support enabled.
PROCESSOR_16BITINSTRUCTION The CPU in question supports a 16bit instruction set. If SYSTEM_INFO.WprocessorLevel indicates that the current MIPS CPU is a MIPS R4000 then this signafies that the CPU also support the MIPS16 instruction set. This bit is only relative to the MIPS R4000 family at this time.

The kernel does not process this API. It is provided to allow an OEM device driver to communicate with kernel mode HAL code. The implementation is the same as DeviceIOControl.

Some of the possible values are:

IOCTL_HAL_SET_DEVICE_INFO :

IOCTL_HAL_GET_DEVICE_INFO :

IOCTL_HAL_DDK_CALL:

IOCTL_EDBG_REGISTER_CLIENT:

IOCTL_EDBG_DEREGISTER_CLIENT:

IOCTL_EDBG_REGISTER_DFLT_CLIENT:

IOCTL_EDBG_SEND:

IOCTL_EDBG_RECV:

IOCTL_EDBG_SET_DEBUG:

IOCTL_SET_KERNEL_COMM_DEV:

IOCTL_HAL_REBOOT:

IOCTL_SET_KERNEL_DEV_PORT:

IOCTL_PROCESSOR_INFORMATION:

An OEM may also provide any of the following information about the microprocessor:

  • The name of the processor core. For example MIPS or ARM.
  • The revision number of the processor core.
  • The actual processor name, for example, R4111.
  • The processor revision number.
  • The catalog number for the processor.
  • The name of the processor vendor.
  • The maximum clock speed of the CPU.

Requirements

Runs on Versions Defined in Include Link to
Windows CE OS 3.0 and later kfuncs.h Winbase.h  

Note   This API is part of the complete Windows CE OS package as provided by Microsoft. The functionality of a particular platform is determined by the original equipment manufacturer (OEM) and some devices may not support this API.

See Also

DeviceIOControl, SYSTEM_INFO

 Last updated on Tuesday, July 13, 2004

© 1992-2000 Microsoft Corporation. All rights reserved.