Función WdfPdoInitAddDeviceText (wdfpdo.h)
[Solo se aplica a KMDF]
El método WdfPdoInitAddDeviceText agrega una descripción del dispositivo y una ubicación del dispositivo a un dispositivo, para una configuración regional especificada.
Sintaxis
NTSTATUS WdfPdoInitAddDeviceText(
[in] PWDFDEVICE_INIT DeviceInit,
[in] PCUNICODE_STRING DeviceDescription,
[in] PCUNICODE_STRING DeviceLocation,
[in] LCID LocaleId
);
Parámetros
[in] DeviceInit
Puntero a una estructura de WDFDEVICE_INIT.
[in] DeviceDescription
Puntero a una estructura de UNICODE_STRING que contiene una descripción del dispositivo, con formato para la configuración regional especificada. El controlador puede asignar el búfer de la cadena desde el grupo paginado.
[in] DeviceLocation
Puntero a una estructura de UNICODE_STRING que contiene una descripción de la ubicación en el bus donde el dispositivo primario encontró el elemento secundario. El controlador puede asignar el búfer de la cadena desde el grupo paginado.
[in] LocaleId
Identificador de configuración regional (LCID) que representa la configuración regional de las cadenas Unicode. Para obtener más información, vea Identificadores de configuración regional.
Valor devuelto
Si la operación se realiza correctamente, el método devuelve STATUS_SUCCESS. Entre los valores devueltos adicionales se incluyen:
Código de retorno | Descripción |
---|---|
|
El controlador está inicializando un FDO en lugar de un PDO. |
|
El controlador no pudo asignar espacio para almacenar las cadenas. |
El método también puede devolver otros valores de NTSTATUS.
Observaciones
El marco almacena el texto del dispositivo especificado y lo pasa al administrador de PnP en respuesta a una solicitud de IRP_MN_QUERY_DEVICE_TEXT. El texto que proporcione debe ayudar al usuario a identificar el dispositivo. A veces, el administrador de PnP muestra el texto al intentar instalar controladores adicionales para el dispositivo.
Puede llamar a WdfPdoInitAddDeviceText varias veces, agregando texto del dispositivo para varias configuraciones regionales. Cuando el sistema muestra el texto, elige el texto que coincide con la configuración regional actual, si está disponible. De lo contrario, usará la cadena para la configuración regional predeterminada. El controlador puede especificar la configuración regional predeterminada del controlador llamando a WdfPdoInitSetDefaultLocale.
El controlador debe llamar a WdfPdoInitAddDeviceText 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 proporcionan cadenas Unicode para la ubicación y la descripción de un dispositivo. La descripción incluye un número de instancia. Para obtener un ejemplo completo que usa WdfPdoInitAddDeviceText, vea el controlador de ejemplo KbFiltr.
DECLARE_CONST_UNICODE_STRING(deviceLocation,L"Keyboard Filter\0" );
DECLARE_UNICODE_STRING_SIZE(buffer, MAX_ID_LEN);
status = RtlUnicodeStringPrintf(
&buffer,
L"Keyboard_Filter_%02d",
InstanceNo
);
if (!NT_SUCCESS(status)) {
goto Cleanup;
}
status = WdfPdoInitAddDeviceText(
pDeviceInit,
&buffer,
&deviceLocation,
0x409
);
if (!NT_SUCCESS(status)) {
goto Cleanup;
}
Requisitos
Requisito | Valor |
---|---|
de la plataforma de destino de | Universal |
versión mínima de KMDF | 1.0 |
encabezado | wdfpdo.h (incluya Wdf.h) |
Biblioteca | 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) |