Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
In Windows Vista en latere versies van Windows ondersteunt het uniforme apparaateigenschapsmodel een apparaateigenschap die de apparaatinstantie-id vertegenwoordigt. Het uniforme apparaateigenschapsmodel maakt gebruik van de DEVPKEY_Device_InstanceIdeigenschapssleutel om deze eigenschap weer te geven.
Windows Server 2003, Windows XP en Windows 2000 bieden ook ondersteuning voor deze eigenschap. Deze eerdere Windows-versies bieden echter geen ondersteuning voor de eigenschapssleutel van het uniforme apparaateigenschapsmodel. In plaats daarvan kunt u een apparaatexemplaar-id ophalen in deze eerdere versies van Windows door CM_Get_Device_ID of SetupDiGetDeviceInstanceId aan te roepen. Om compatibiliteit met deze eerdere versies van Windows te behouden, ondersteunen Windows Vista en latere versies ook CM_Get_Device_ID en SetupDiGetDeviceInstanceId. U moet echter de bijbehorende eigenschapssleutel gebruiken om toegang te krijgen tot deze eigenschap op Windows Vista en later.
Zie Toegang tot eigenschappen van apparaatinstanties (Windows Vista en later) voor informatie over het gebruik van eigenschapssleutels voor toegang tot eigenschappen van apparaatstuurprogramma's in Windows Vista en latere versies.
Zie de volgende voorbeelden om een apparaatinstantie-id op te halen op Windows Server 2003, Windows XP en Windows 2000.
tekenreeksen voor apparaatinstantie-id's moeten minder dan MAX_DEVICE_ID_LEN tekens bevatten (inclusief NULL), zoals gedefinieerd in cfgmgr32.h. U kunt deze aanname gebruiken om een query uit te voeren op de apparaatinstantie-id met code zoals:
WCHAR DeviceInstancePath[MAX_DEVICE_ID_LEN];
cr = CM_Get_Device_ID(DevInst,
DeviceInstancePath,
sizeof(DeviceInstancePath)/sizeof(DeviceInstancePath[0]),
0);
if (cr != CR_SUCCESS) {
printf("Error 0x%08x retrieving device instance path.\n", cr);
} else {
printf("Device instance path is %ws.\n", DeviceInstancePath);
}
of als u wilt dat uw buffer dynamisch van grootte is:
ULONG DeviceInstancePathLength = 0;
PWSTR DeviceInstancePath = NULL;
cr = CM_Get_Device_ID_Size(&DeviceInstancePathLength,
DevInst,
0);
if (cr != CR_SUCCESS) {
printf("Error 0x%08x retrieving device instance path size.\n", cr);
} else {
DeviceInstancePath = (PWSTR)malloc(DeviceInstancePathLength * sizeof(WCHAR));
if (DeviceInstancePath != NULL) {
cr = CM_Get_Device_ID(DevInst,
DeviceInstancePath,
DeviceInstancePathLength,
0);
if (cr != CR_SUCCESS) {
printf("Error 0x%08x retrieving device instance path.\n", cr);
} else {
printf("Device instance path is %ws.\n", DeviceInstancePath);
}
}
}