WdfPdoInitAddCompatibleID function (wdfpdo.h)
[Applies to KMDF only]
The WdfPdoInitAddCompatibleID method adds a compatible ID to the list of compatible IDs for a child device.
Syntax
NTSTATUS WdfPdoInitAddCompatibleID(
[in] PWDFDEVICE_INIT DeviceInit,
[in] PCUNICODE_STRING CompatibleID
);
Parameters
[in] DeviceInit
A pointer to a WDFDEVICE_INIT structure.
[in] CompatibleID
A pointer to a UNICODE_STRING structure that contains a compatible ID string. The driver can allocate the string's buffer from paged pool.
Return value
If the operation succeeds, the method returns STATUS_SUCCESS. Additional return values include:
Return code | Description |
---|---|
|
The driver is initializing an FDO instead of a PDO. |
|
The driver could not allocate space to store the compatible ID string. |
The method might also return other NTSTATUS values.
Remarks
The driver can add one or more compatible IDs for a device. They should be added in order, from best match to worst match. The framework will deliver the IDs to the PnP manager in the order that they were added. For more information about compatible IDs, see Device Identification Strings and How Setup Selects Drivers.
The driver must call WdfPdoInitAddCompatibleID before calling WdfDeviceCreate. For more information about calling WdfDeviceCreate, see Creating a Framework Device Object.
Examples
The following code example reports a compatible ID value that the Toaster sample driver uses.
DECLARE_CONST_UNICODE_STRING(compatId, L"{B85B7C50-6A01-11d2-B841-00C04FAD5171}\\MsCompatibleToaster\0");
status = WdfPdoInitAddCompatibleID(
DeviceInit,
&compatId
);
Requirements
Requirement | Value |
---|---|
Target Platform | Universal |
Minimum KMDF version | 1.0 |
Header | wdfpdo.h (include Wdf.h) |
Library | Wdf01000.sys (see Framework Library Versioning.) |
IRQL | PASSIVE_LEVEL |
DDI compliance rules | ChildDeviceInitAPI(kmdf), DriverCreate(kmdf), InitFreeDeviceCallback(kmdf), InitFreeDeviceCreate(kmdf), InitFreeNull(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf), PdoDeviceInitAPI(kmdf), PdoInitFreeDeviceCallback(kmdf), PdoInitFreeDeviceCreate(kmdf) |