Función WdfPdoInitAssignDeviceID (wdfpdo.h)
[Solo se aplica a KMDF]
El método WdfPdoInitAssignDeviceID actualiza el identificador de dispositivo de un dispositivo secundario.
Sintaxis
NTSTATUS WdfPdoInitAssignDeviceID(
[in] PWDFDEVICE_INIT DeviceInit,
[in] PCUNICODE_STRING DeviceID
);
Parámetros
[in] DeviceInit
Puntero a una estructura de WDFDEVICE_INIT .
[in] DeviceID
Puntero a una estructura de UNICODE_STRING que contiene una cadena de identificador de dispositivo. El controlador puede asignar el búfer de la cadena desde el grupo paginado.
Valor devuelto
Si la operación se realiza correctamente, el método devuelve STATUS_SUCCESS. Entre los valores devueltos adicionales se incluyen:
Código devuelto | Descripción |
---|---|
|
El controlador está inicializando un FDO en lugar de un PDO. |
|
El controlador no pudo asignar espacio para almacenar la cadena de identificador de dispositivo. |
El método también podría devolver otros valores NTSTATUS.
Comentarios
Un identificador de dispositivo suele ser el primer elemento de la lista de identificadores de hardware que notifica un dispositivo. Para obtener más información sobre los identificadores de dispositivo y los identificadores de hardware, consulte Cadenas de identificación de dispositivos y Cómo selecciona el programa de instalación de controladores.
El controlador debe llamar a WdfPdoInitAssignDeviceID antes de llamar a WdfDeviceCreate. Para obtener más información sobre cómo llamar a WdfDeviceCreate, vea Creating a Framework Device Object.
Ejemplos
En el ejemplo de código siguiente se informa de un identificador de dispositivo que usa el controlador de ejemplo KbFiltr .
#define KBFILTR_DEVICE_ID L"{A65C87F9-BE02-4ed9-92EC-012D416169FA}\\KeyboardFilter\0"
DECLARE_CONST_UNICODE_STRING(deviceId,KBFILTR_DEVICE_ID);
status = WdfPdoInitAssignDeviceID(
pDeviceInit,
&deviceId
);
Requisitos
Requisito | Value |
---|---|
Plataforma de destino | Universal |
Versión mínima de KMDF | 1.0 |
Encabezado | wdfpdo.h (incluya Wdf.h) |
Library | Wdf01000.sys (consulte Control de versiones de la biblioteca de marcos). |
IRQL | PASSIVE_LEVEL |
Reglas de cumplimiento de DDI | ChildDeviceInitAPI(kmdf), DriverCreate(kmdf), InitFreeDeviceCallback(kmdf), InitFreeDeviceCreate(kmdf), InitFreeNull(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf), PdoDeviceInitAPI(kmdf), PdoInitFreeDeviceCallback(kmdf), PdoInitFreeDeviceCreate(kmdf) |