A virtual device provides a virtual device identifier to help distinguish it from all other virtual devices. The VMM dynamic-linking routine uses virtual device identifiers to help it link service calls to the appropriate virtual device. A virtual device needs a unique identifier if it provides services, provides a V86-mode or protected-mode API procedure, or in some other way needs to be uniquely identified.
Although standard virtual devices use the predefined virtual device identifiers (symbols defined in VMM.INC), virtual devices that support new devices or software interfaces must have entirely new identifiers. To help prevent conflicts with other new virtual devices, Microsoft assigns new identifiers on request, registering the identifiers to ensure that no other manufacturer uses the identifier for its own virtual devices. Microsoft reserves all virtual device identifiers from zero through 01FFh for its own use.
Virtual devices that do not provide services or API procedures, or that do not require a unique identifier should use the Undefined_Device_ID symbol to define the virtual device identifier.