# Windows HTP Library Loading Tutorial ## Introduction Starting with Snapdragon X Elite, in order to ensure that only authorized code can run on the Hexagon NPU, Windows requires a digital signature to be verified before the code will execute. The HTP skel signature verification feature: - Provides secure execution of trusted code on the HTP backend (Hexagon NPU) - Digitally signs the HTP libraries - Verifies signatures at library load time - Only allows signed libraries with digital signature to be loaded on the HTP backend ## HTP Skel Signature Verification Related Files - *libQnnHtpVXXSkel.so* – Shared library that must be loaded in the HTP backend to execute the model. - *libqnnhtpvXX.cat* – Windows security catalog file required to pass signature verification. - *libCalculator\_skel.so* – An HTP runtime library required by qnn-platform-validator ## Usage Requirements Note \* Do not modify any library (\*skel.so) or catalog (\*.cat) files. This will break signature verification and the library will not load. Library and catalog files must be in the same folder or the library won’t load. For Windows client applications using QNN with HTP runtime, the following files must stay in the same folder. - libQnnHtpV73Skel.so - libqnnhtpv73.cat When running qnn-platform-validator.exe, the following files must stay in the same folder. - libCalculator\_skel.so - libqnnhtpv73.cat For Windows device drivers (camera, audio, etc.) that need to pass the Windows Hardware Compatibility Program (WHCP), do not include HTP Skel libraries. - Instead, Windows device drivers use the Qualcomm HNRD backend interface which is pre-installed on Snapdragon X Series platforms. - See the HNRD documentation for details. ## Error Logs When the Signature Verification Fails Qualcomm® AI Engine Direct SDK raises an error when it finds the shared library is unable to load. The `transportStatus: 9` error message appears when the HTP skel signature verification fails. QnnDsp DspTransport.openSession qnn_open failed, 0x80000406 QnnDsp IDspTransport: Unable to load lib 0x80000406 QnnDsp DspTransport failed,cannot open session, error 0x00000009 QnnDsp Unable to load Skel Library. transportStatus: 9 QnnDsp Failed to retrieve skel build id: err: 1008 Copy to clipboard ## Signed HTP libraries vs Signed Protection Domain The term *sign* can refer to numerous concepts depending on its context. - In the context of the HTP skel signature verification feature, signed means the Windows digitally-signed catalog file (.cat) serves as a digital signature for HTP library files. - Within the NPU, there are unsigned and signed NPU PDs (Protection Domains), that control access to different services on the NPU. See the Hexagon SDK documentation for more details. The digitally-signed catalog file and signed HTP libraries in the Qualcomm® AI Engine Direct SDK may be located in a folder named “unsigned”. > > > Note > > > Here the folder name *unsigned* refers to the PD and should not be confused > with the Windows digital signature verification. Last Published: Oct 10, 2025 [Previous Topic End-to-end HTP inference with x64 qnn-sample-app and offline prepared graph](https://docs.qualcomm.com/bundle/publicresource/80-63442-50/topics/arm64x_tutorial1.md) [Next Topic Windows Error Reporting](https://docs.qualcomm.com/bundle/publicresource/80-63442-50/topics/wer.md)