TransportCreate

Creates a transport instance.

Syntax

PULSE_STATUS TransportCreate(
 [out] PPS_TRANSPORT *pTransport,
 [in] PS_TRANSPORT_TYPE TransportType
);

Parameters

PPS_TRANSPORT *pTransport

A pointer to the resulting PPS_TRANSPORT structure. PS_TRANSPORT structure is opaque to the user. Treat it as a handle for other transport functions.

PS_TRANSPORT_TYPE TransportType

Specifies the type of transport to be created:

Value Meaning
pttInvalid
0
Invalid
pttSerial
1
Serial port, including any emulated serial device.
pttEhci
2
EHCI device, used for USB 2.0 debug port debugging.
pttXhci
3
XHCI device, used for USB 3 DbC debugging.
pttFirewire
4
FireWire controller.
pttThunderbolt
5
Implemented in my dreams only.
pttNet
6
Networking.
pttAudio
7
Not implemented because it is stupid.
pttMem
8
Not implemented. Not even sure what that was supposed to be.
pttPipe
9
Windows pipes that provide a serial connection to virtual machines or emulators.
pttLocal
10
Local debugging using a vmcall trap and shared memory.
pttMax
10
Equals the maximum supported.

Return value

If the function succeeds, the return value is PULSE_STATUS_SUCCESS.

If it fails, it returns one of the PULSE_STATUS values. Possible return codes include, but are not limited to, the following:

PULSE_STATUS_INSUFFICIENT_RESOURCES
0xC0000002
One of the memory allocations failed during initialization.
PULSE_STATUS_INVALID_PARAMETER
0xC0000010
Might happen if:
  • pTransport argument is NULL.
  • TransportType is invalid.
  • The transport type is not pttNet or pttXhci for Linux.
  • PULSE_STATUS_DEVICE_NOT_FOUND
    0xC0000305
    Might happen if:
  • Unable to enumerate serial devices for some reason. Try checking "HARDWARE\\DEVICEMAP\\SERIALCOMM" registry key on Windows.
  • Unable to enumerate USB 3 debug devices.
  • PULSE_STATUS_TRANSPORT_INIT_FAILED
    0xC0000300
    Might happen if:
  • Failed to WSAStartup on Windows.
  • Local debugging vmcall test failed. Check you PulseDbg Host settings.
  • Remarks

    Use the TransportDestroy function to destroy the transport created by this function.

    Transport types that can be enumerated are enumerated during the transport instance creation. See TransportEnumerateInterfaces for details.

    PulseEng supports only the pttNet and pttXhci transport types on Linux.