SMB Library 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
  • Routers and Gateways
  • 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
  • Nucleus
  • iOS
  • Android
  • Itron
  • QNX
  • Any OS on demand

NQE™ highlights

  • Highly portable library 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


 December 16, 2018

The official SMB testing Plugfest will be held on January 28-31 2019 at the Sheraton Hotel Tel-Aviv. Four days of SMB client and server testing, open to any company that wishes to test their SMB implementations. Sign up in the link below.

EMEA SMB Plugfest

 November 26, 2018

Visuality Systems announces the transition to the Agile Development System which part of the many advantages include delivery of fully tested Visuality updates in a very short time cycle. Furthermore, Visuality Systems has established an online Help Desk that offers a simple and efficient customer interaction with the Visuality Systems technical support team

Helpdesk Registration


 November 06, 2018

Visuality Systems will be a sponsor at the SDC EMEA conference to be held at the Sheraton hotel, Tel-Aviv, Israel on January 30. The event will be co-located with an SMB3 testing Plugfest held on January 28-31.

See Link


   August 12, 2018

Windows XP and Server 2003 users can now seamlessly upgrade from the now-defunct SMB1 stack to the encrypted up to date SMB3 protocol with the latest NQE Server. 


  July 31, 2018

Visuality Systems has released jNQ™ 1.0.1 adding security features and performance improvements to the SMB3.1.1 NQ Java library.


 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 exploiting the vulnerability of non-encrypted SMB versions – SMB1/SMB2. Moving to SMB3.1.1 has become a MUST.

See Link