This article contains information to help developers determine the sales origin of an installed software product. This article describes how to parse the DigitalProductId binary entry in the Windows registry to extract the sales channel information by using a predefined offset. For example, the sales channel information may indicate that the product was sold through the retail channel or through an OEM channel. This article applies to version 3 and version 4 of the DigitalProductId registry entry that is used in the Windows products that are listed in the "Applies to" section.
Note This information is provided only for license channel identification and for reporting. This article describes a method of extracting this information. However, this article does not contain steps or sample code.
Warning Serious problems might occur if you modify the registry incorrectly by using Registry Editor or by using another method. These problems might require that you reinstall the operating system. Microsoft cannot guarantee that these problems can be solved. Modify the registry at your own risk.
The DigitalProductId registry entry for a software product is located in the system registry hive under the
Registration
subkey for the product. The DigitalProductId registry entry for an operating system is located in the following registry subkey:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion
The DigitalProductId registry entry contains the encoded REG_BINARY value of the product key that was used to enable the software product.
The entry contains the following information:
Name: DigitalProductId
Type: REG_BINARY
Data: aa,bb,cc,00,00...
To determine the channel information, calculate the following offsets.
Note Each byte represents two characters of the binary value.
- Bytes 0 through 3 represent the total size of the data when cast to DWORD.
- Bytes 4 and 5 represent the major version number of the Windows product when cast to WORD.
- Bytes 6 and 7 represent the minor version number of the Windows product when cast to WORD.
If the major version number is 3, bytes 80, 81, 82, and 83 (cast to DWORD) contain the numeric value for channel. The following table lists the possible DWORD values.
Collapse this tableExpand this table
| Value | Meaning |
|---|
| 0 | Full packaged product |
| 1 | Compliance checked product |
| 2 | OEM |
| 3 | Volume |
If the major version number is 4, the 128 bytes that start at byte offset 1016 contain the Unicode string that corresponds to the channel. The following string values are possible:
- Retail
- OEM:SLP
- OEM:COA
- OEM:NONSLP
- Volume:CSVLK
- Volume:GVLK
- Volume:MAK