KITLTRANSPORT

This structure contains information that defines a KITL transport. The kernel calls OEMKitlInit and the OEM is responsible of filling the structure with appropriate function pointers.

typedef struct _KITLTRANSPORT{
  DWORD dwBootFlags; 
  char szName[KITL_MAX_DEV_NAMELEN];
  UCHAR Interrupt;
  UCHAR WindowSize;
  UCHAR FrmHdrSize;
  UCHAR FrmTlrSize;
  DWORD dwPhysBuffer;
  DWORD dwPhysBufLen;
  PFN_ENCODE pfnEncode;
  PFN_DECODE pfnDecode;
  PFN_SENDFRAME pfnSend;
  PFN_RECVFRAME pfnRecv;
  PFN_ENABLEINT pfnEnableInt;
  PFN_GETDEVCFG pfnGetDevCfg;
  PFN_SETHOSTCFG pfnSetHostCfg;
} KITLTRANSPORT, *PKITLTRANSPORT;

Members

  • dwBootFlags
    Bit fields that specify which service to start at boot time. This member can be set to one or more of the following values.
    Value Description
    KITL_FL_DBGMSG The debug messages service will be registered.
    KITL_FL_PPSH The text shell service will be registered.
    KITL_FL_KDBG The kernel debugger will be started.
    KITL_FL_CLEANBOOT Forces a clean boot.
  • szName
    Name of the device, which is limited to KITL_MAX_DEV_NAMELEN characters including the NULL character.
  • Interrupt
    For an interrupt-based transport, the value is set to the SYSINTR_* value of the interrupt request (IRQ). If this is a transport based on polling, set this value to KITL_SYSINTR_NOINTR.
  • WindowSize
    Required window size for the default services.
  • FrmHdrSize
    Size of the frame header that is specific to the OEM's transport.
  • FrmTlrSize
    Size of the frame trailer that is specific to the OEM's transport.
  • dwPhysBuffer
    Location of a statically mapped virtual buffer that is used by the default kernel services. This memory is reserved in the Config.bib file.
  • dwPhysBufLen
    Size of the memory buffer for default services.
  • pfnEncode
    Function to encode a packet with an OEM-defined header and trailer.
  • pfnDecode
    Function to decode a packet received from the transport using the transport-specific header and trailer information.
  • pfnSend
    Function to send a packet over the transport.
  • pfnRecv
    Function to receive a packet from the transport.
  • pfnEnableInt
    Function to enable or disable transport interrupts.
  • pfnGetDevCfg
    Function to retrieve the device transport configuration data.
  • pfnSetHostCfg
    Function to set the host computer configuration data.

Remarks

The OEM needs to provide the following information to the structure for the kernel to initialize KITL:

  • WindowSize cannot be 0.
  • FrmHdrSize and FrmTailorSize should not be 0 unless you do not do framing on package. Usually, the frame header and/or tailor provide checksum information to divide packages from each other. Both desktop and device-side KITL need to be consistent on interpreting the frames or KITL will not work.
  • dwPhysBuffer and dwBufferLen must be pointing to a memory region, not known to NK, of size >= WindowSize*2*KITL_MTU.
  • pfnEncode/pfnDecode cannot be 0. It is used to provide the framing of packages as described in the second bullet. For function descriptions, see %_WINCEROOT%\Public\Common\Oak\Inc\Kitl.h.
  • If the transport is interrupt-driven, where the interrupt field is not equal to KITL_SYSINT_NOINTR, you must provide the function the ability to enable or disable the interrupt pfnEnableInt.
  • None of the function pointers can be NULL. Provide stubs if the transport does not need GetXXXConfig or SetXXXConfig.

Requirements

OS Versions: Windows CE .NET 4.0 and later.
Header: Kitl.h.

See Also

OEMKitlInit | TransportEncode | TransportDecode | TransportSend | TransportRecv | TransportEnableInt | TransportGetDevCfg | TransportSetHostCfg

Last updated on Wednesday, April 13, 2005

© 2005 Microsoft Corporation. All rights reserved.