KITLTRANSPORT (Compact 2013)

10/16/2014

This structure contains function pointers that define a kernel independent transport layer (KITL).

Syntax

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

    Registers the debug messages service.

    KITL_FL_PPSH

    Registers the text shell service.

    KITL_FL_KDBG

    Starts the kernel debugger.

    KITL_FL_CLEANBOOT

    Forces a clean boot.

  • szName
    Name of the device, which is limited the number of characters, including the NULL character, in KITL_MAX_DEV_NAMELEN.
  • 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.

    In Windows Embedded Compact 2013, if this field is set to KITL_SYSINTR_NOINTR, pfnEnableInt can be NULL.

  • WindowSize
    Required window size for the default services.

    In Windows Embedded Compact 2013, this value is ignored by KITL.

  • 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 the default kernel services use. This memory is reserved in the Config.bib file.

    In Windows Embedded Compact 2013, this value is ignored by KITL.

  • dwPhysBufLen
    Size of the memory buffer for default services.

    In Windows Embedded Compact 2013, this value is ignored by KITL.

  • pfnEncode
    Function to encode a packet with an OEM-defined header and trailer. For more information, see PFN_ENCODE.
  • pfnDecode
    Function to decode a packet received from the transport, using the transport-specific header and trailer information. For more information, see PFN_DECODE.
  • pfnSend
    Function to send a packet over the transport. For more information, PFN_SENDFRAME.
  • pfnRecv
    Function to receive a packet from the transport. For more information, see PFN_RECVFRAME.
  • pfnEnableInt
    Function to enable or disable transport interrupts. For more information, see PFN_ENABLEINT.

    In Windows Embedded Compact 2013, this value can be NULL if the Interrupt field is set to KITL_SYSINTR_NOINTR.

  • pfnGetDevCfg
    Function to retrieve the device transport configuration data. For more information, see PFN_GETDEVCFG.
  • pfnSetHostCfg
    Function to set the host computer configuration data. For more information, see PFN_SETHOSTCFG.

Remarks

The kernel calls the KITLIoctl function, and the OEM is responsible for implementing the OEMKitlInit function to fill the KITLTRANSPORT structure with appropriate function pointers.

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

  • FrmHdrSize and FrmTailorSize must not be set to zero unless you do not frame the package. Typically, the frame header and/or tailor provide checksum information to separate packages from each other. Both development computer and device-side KITL must be consistent in how they interpret the frames or KITL will not work.
  • The pfnEncode and the pfnDecode members must contain a value; they cannot be set to zero. They provide the framing of packages as described above. 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 set the function to enable or disable the interrupt pfnEnableInt.
  • The majority of the function pointers cannot be set to NULL. Provide stubs if the transport does not use GetXXXConfig or SetXXXConfig.
    In Windows Embedded Compact 2013, pfnEnableInt can be set to NULL if the Interrupt field is set to KITL_SYSINTR_NOINTR.

Requirements

Header

kitl.h

See Also

Reference

KITL Structures
OAL Structures
PFN_ENCODE
PFN_DECODE
PFN_SENDFRAME
PFN_RECVFRAME
PFN_ENABLEINT
PFN_GETDEVCFG
PFN_SETHOSTCFG