This function sets the whole of the binary data for the ProductPolicy value.


ExUpdateLicenseData (
    PVOID pvData,
    ULONG cbData);


The pvData and cbData arguments provide the address and size (in bytes) of a buffer that contains the license data.

Return Value

The function returns zero for success, else an error code.


The license data expected in the buffer is exactly the binary data for the ProductPolicy registry value. It has the form of a header, an array of variably-sized structures that provide the license values, and an end marker.

A buffer is required and must be dword-aligned. The size must allow for at least the header and end marker, without exceeding 64KB. Failure to meet these requirements is an error (STATUS_INVALID_PARAMETER).


The ExUpdateLicenseData function is exported by name from the kernel in version 6.0 and higher.

Use by Microsoft

The only known use by Microsoft is in SPSYS.SYS and in the kernel itself.

The internal use is during initialisation, when the kernel adopts the license data that has been read from the ProductPolicy value in the ProductOptions key.