WdfPdoInitAssignDeviceID function (wdfpdo.h)
[Applies to KMDF only]
The WdfPdoInitAssignDeviceID method updates the device ID for a child device.
Syntax
NTSTATUS WdfPdoInitAssignDeviceID(
[in] PWDFDEVICE_INIT DeviceInit,
[in] PCUNICODE_STRING DeviceID
);
Parameters
[in] DeviceInit
A pointer to a WDFDEVICE_INIT structure.
[in] DeviceID
A pointer to a UNICODE_STRING structure that contains a device 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 device ID string. |
The method might also return other NTSTATUS values.
Remarks
A device ID is typically the first item in the list of hardware IDs that a device reports. For more information about device IDs and hardware IDs, see Device Identification Strings and How Setup Selects Drivers.
The driver must call WdfPdoInitAssignDeviceID before calling WdfDeviceCreate. For more information about calling WdfDeviceCreate, see Creating a Framework Device Object.
Examples
The following code example reports a device ID that the KbFiltr sample driver uses.
#define KBFILTR_DEVICE_ID L"{A65C87F9-BE02-4ed9-92EC-012D416169FA}\\KeyboardFilter\0"
DECLARE_CONST_UNICODE_STRING(deviceId,KBFILTR_DEVICE_ID);
status = WdfPdoInitAssignDeviceID(
pDeviceInit,
&deviceId
);
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) |