KMDF Smart Card Reader Windows Universal Driver ApiValidator Error

ApiValidator constantly reports error while porting our WDF KMDF smart card reader driver to window 10 universal driver. The error log is given below


ApiValidation: Warning: API _allmul in ntoskrnl.exe is not a supported universal API. Samplex86.sys calls this API.
ApiValidation: Warning: API memcpy in ntoskrnl.exe is not a supported universal API. Samplex86.sys calls this API.
ApiValidation: Warning: API memset in ntoskrnl.exe is not a supported universal API. Samplex86.sys calls this API.
ApiValidation: Warning: API KfAcquireSpinLock in hal.dll is not a supported universal API. Samplex86.sys calls this API.
ApiValidation: Warning: API KfReleaseSpinLock in hal.dll is not a supported universal API. Samplex86.sys calls this API.
ApiValidation: Warning: API SmartcardDeviceControl in smclib.sys is not a supported universal API. Samplex86.sys calls this API.
ApiValidation: Warning: API SmartcardExit in smclib.sys is not a supported universal API. Samplex86.sys calls this API.
ApiValidation: Warning: API SmartcardInitialize in smclib.sys is not a supported universal API. Samplex86.sys calls this API.
ApiValidation: Warning: API SmartcardInvertData in smclib.sys is not a supported universal API. Samplex86.sys calls this API.
ApiValidation: Warning: API SmartcardDeviceControl in smclib.sys is not a supported universal API. Samplex64.sys calls this API.
ApiValidation: Warning: API SmartcardExit in smclib.sys is not a supported universal API. Samplex64.sys calls this API.
ApiValidation: Warning: API SmartcardInitialize in smclib.sys is not a supported universal API. Samplex64.sys calls this API.
ApiValidation: Warning: API SmartcardInvertData in smclib.sys is not a supported universal API. Samplex64.sys calls this API.

Development Environment used is Visual Studio 2015 WDK 1703 (10.0.15063.0)
Did anyone face the same issue with ntoskrnl.exe or smclib.sys ?
How to make smart card drivers to be universal drivers ?

The ntos errors are strange, they should not be reported. The smclib errors are expected, smclib isn’t a universal library. How are you invoking apivalidator?

Bent from my phone


From: xxxxx@lists.osr.com on behalf of xxxxx@yahoo.com
Sent: Wednesday, November 22, 2017 11:59:55 PM
To: Windows System Software Devs Interest List
Subject: [ntdev] KMDF Smart Card Reader Windows Universal Driver ApiValidator Error

ApiValidator constantly reports error while porting our WDF KMDF smart card reader driver to window 10 universal driver. The error log is given below

-------------------------------------------------------
ApiValidation: Warning: API _allmul in ntoskrnl.exe is not a supported universal API. Samplex86.sys calls this API.
ApiValidation: Warning: API memcpy in ntoskrnl.exe is not a supported universal API. Samplex86.sys calls this API.
ApiValidation: Warning: API memset in ntoskrnl.exe is not a supported universal API. Samplex86.sys calls this API.
ApiValidation: Warning: API KfAcquireSpinLock in hal.dll is not a supported universal API. Samplex86.sys calls this API.
ApiValidation: Warning: API KfReleaseSpinLock in hal.dll is not a supported universal API. Samplex86.sys calls this API.
ApiValidation: Warning: API SmartcardDeviceControl in smclib.sys is not a supported universal API. Samplex86.sys calls this API.
ApiValidation: Warning: API SmartcardExit in smclib.sys is not a supported universal API. Samplex86.sys calls this API.
ApiValidation: Warning: API SmartcardInitialize in smclib.sys is not a supported universal API. Samplex86.sys calls this API.
ApiValidation: Warning: API SmartcardInvertData in smclib.sys is not a supported universal API. Samplex86.sys calls this API.
ApiValidation: Warning: API SmartcardDeviceControl in smclib.sys is not a supported universal API. Samplex64.sys calls this API.
ApiValidation: Warning: API SmartcardExit in smclib.sys is not a supported universal API. Samplex64.sys calls this API.
ApiValidation: Warning: API SmartcardInitialize in smclib.sys is not a supported universal API. Samplex64.sys calls this API.
ApiValidation: Warning: API SmartcardInvertData in smclib.sys is not a supported universal API. Samplex64.sys calls this API.
----------------------------------------
Development Environment used is Visual Studio 2015 WDK 1703 (10.0.15063.0)
Did anyone face the same issue with ntoskrnl.exe or smclib.sys ?
How to make smart card drivers to be universal drivers ?


NTDEV is sponsored by OSR

Visit the list online at: https:

MONTHLY seminars on crash dump analysis, WDF, Windows internals and software drivers!
Details at https:

To unsubscribe, visit the List Server section of OSR Online at https:</https:></https:></https:>

Dear Dorn,
Thank you for the response. I used ApiValidator from command line.
If -SupportedApiXmlFiles: is set to x64\UniversalDDIs.xml then NTOS errors are reported.
If -SupportedApiXmlFiles: is set to x86\UniversalDDIs.xml then ONLY smclib is reported.

I am currently using Visual Studio 2015 WDK 1703 (10.0.15063.0).

Best Regards
Xavier

The universal apis xml file needs to match the bitness of the file being checked, so the x86 xml must only be used against Samplex86.sys. That leaves the smclib errors which are expected no matter the architecture

Bent from my phone


From: xxxxx@lists.osr.com on behalf of xxxxx@yahoo.com
Sent: Thursday, November 23, 2017 11:59:03 PM
To: Windows System Software Devs Interest List
Subject: RE:[ntdev] KMDF Smart Card Reader Windows Universal Driver ApiValidator Error

Dear Dorn,
Thank you for the response. I used ApiValidator from command line.
If -SupportedApiXmlFiles: is set to x64\UniversalDDIs.xml then NTOS errors are reported.
If -SupportedApiXmlFiles: is set to x86\UniversalDDIs.xml then ONLY smclib is reported.

I am currently using Visual Studio 2015 WDK 1703 (10.0.15063.0).

Best Regards
Xavier


NTDEV is sponsored by OSR

Visit the list online at: https:

MONTHLY seminars on crash dump analysis, WDF, Windows internals and software drivers!
Details at https:

To unsubscribe, visit the List Server section of OSR Online at https:</https:></https:></https:>