SMB Implementation For Embedded Devices


NQE™ is an SMB client and SMB server solutions developed for non-Windows embedded systems to provide interoperability with Windows-based machines.

You can download the white paper on NQE™ here.

Designed with the flexibility to integrate into virtually any environment, be it an operating system, a CPU or a compiler, NQE™ fully complies with Microsoft SMB/SMB2/SMB3 specifications and supports the latest SMB dialects. Once hooked into a Windows network, the device gains visibility over the network, allowing users to perform file sharing functions.

Being the world’s leading embedded SMB solution, this non-GPL SMB stack carries a small footprint in contrast to the open source Samba, and is up to date to meet the current market scenarios and requirements. NQE™ runs in millions of embedded devices such as scanners, printers, home routers, mobile devices, X-ray machines, automation devices, automotive, aerospace and defense and virtually any device that is required to perform full file sharing functions in a Microsoft Windows networking environment.

NQE™ can also replace old SMB1 with the latest SMB dialect from legacy Windows systems such as Win XP, Server 2000, and Server 2003. Removing SMB1 and installing an encrypted stack will prevent unnecessary cyber risks and overcome connection limitations.

NQE™ Architecture layers

The components shown in blue are system independent, while those in beige may be modified during either Porting or Integration.

NQE Core

NQ Components

NQE™ may be seen as an SMB Server, an SMB Client or NetBios Daemon.

NQ Components

NQE™ file sharing enables multiple embedded devices to remotely browse each other's SMB shared folders and to read, write, edit, copy, delete and update each other's files. All operations executed without the need to transfer entire file to/from the device's local disk or memory.

NQE™ was initially launched in 1999 as CIFS NQ™. Since then, it has evolved in parallel with the evaluation in SMB protocol. In 2014, CIFS NQ was renamed as NQE.

The latest NQE™, version 2.00, is now available for integration. This version supports SMB 3.1.1, which brings a more sophisticated protection through the latest enhancements such as Pre Logon Integrity

Acquiring the commercial, non-GPL, NQE™ network stack off-the-shelf allows our customers to save time and money on expensive R&D, and stay focused on their core technology.


NQE™ Applications

  • Scanners and MFPs
  • NAS and printer appliances (Routers)
  • TVs and Set Up Boxes
  • Cameras
  • Media players
  • Smart phones and tablets
  • Industrial robots
  • Aircrafts
  • Medical equipment

NQE™ Markets

  • Consumer devices
  • Corporate
  • Medical
  • Industrial automation
  • Aerospace and defense
  • Smart devices

Target NQE™ OS

  • VxWorks
  • Linux
  • Integrity
  • Windows
  • ThreadX
  • Itron
  • iOS
  • Android
  • Nucleus
  • Any OS on demand

NQE™ highlights

  • Highly portable to any platform
  • Hardware independent
    – runs on any processor
  • Small footprint
  • Fast performance
  • Highly customizable
  • The most complete CIFS / SMB implementation
    in the market
  • ANSI C source code

NQE™ Code examples


// Mount remote share using credentials
udSetCredentials("userName", "password", "domain");
nqAddMountA("\\mountPoint", "\\\\\\sharedFolder", 1);

Open, read, write and delete file

// Mount remote share using credentials
udSetCredentials("userName", "password", "domain");
nqAddMountA("\\mountPoint", "\\\\\\sharedFolder", 1);    
// Create a file on a remote share
NQ_HANDLE fileHandle = ccCreateFileA("\\mountPoint\\file.txt",
NQ_UINT writtenSize, readSize;
// Write to remote file 
ccWriteFile(fileHandle, data, dataSize, &writtenSize);
// Read from a remote file 
ccReadFile(fileHandle, data, dataSize, &readSize);
// Close file handle 
// Delete a file on a remote share

Delete file by name

// Mount remote share using credentials
udSetCredentials("userName", "password", "domain");
nqAddMountA("\\mountPoint", "\\\\\\sharedFolder", 1);
// Delete a file on a remote share

Browsing directory

// Mount remote share using credentials
udSetCredentials("userName", "password", "domain");
nqAddMountA("\\mountPoint", "\\\\\\sharedFolder", 1);    
// Open a directory on remote share
FindFileDataA_t fileData;
NQ_HANDLE dirHandle = ccFindFirstFileA("\\\\192.168. 19.1\\sharedFolder\\*", &fileData, 0);
if (dirHandle != NULL)
    // Get next file in the directory
    while (ccFindNextFileA(dirHandle, &fileData))
        printf("Filename: %s, fileSize:%u \n", fileData.fileName, fileData.allocationSizeLow);
    // Close directory handle

Visuality Systems developed a Java based product. JCIFS is a Java SMB solution that support SMB1 with no further support in SMB2 or SMB3 protocols. JCIFS latest update was in 2014 and therefore the Visuality Systems SMB code written in Java is a good alternative for the open source JCIFS.

Follow Us



 January 29, 2018

Visuality Systems will be a sponsor at the SDC EMEA conference to be held in the Dan hotel, Tel-Aviv, Israel on February 27.

See Link


  November 01, 2017

Visuality Systems has released jNQ™ 1.00, features the latest SMB 3.1.1 support in Pure JAVA


May 15, 2017

The WannaCry Ransomware cyber-attack succeeded due to exploit the vulnerability of non-encrypted SMB versions – SMB1/SMB2. Moving to SMB3.1.1 has become a MUST.

See Link


March 27, 2017

The VxWorks version of NQE 2.00 is now released.


December 04, 2016

Visuality Systems has released NQE™ 2.00, features the latest SMB 3.1.1 support.


August 10, 2016

The Visuality Systems iNQ application is now available in AppStore. Visuality Systems’ SMB (CIFS) app, can be downloaded and will enable both Client and Server file sharing between an iOS-based smart device and a Win/MAC/Linux PC.


April 11, 2016

Visuality Systems and Microsoft expand Server Message Block collaboration to storage systems.

See Link