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 determinada. El controlador puede asignar el búfer de la cadena del 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 del 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, consulte 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 devuelto Descripción
STATUS_INVALID_DEVICE_REQUEST
El controlador está inicializando un FDO en lugar de un PDO.
STATUS_INSUFFICIENT_RESOURCES
El controlador no pudo asignar espacio para almacenar las cadenas.
 

El método también puede devolver otros valores NTSTATUS.

Comentarios

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 Crear un objeto de dispositivo framework.

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 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)

Consulte también

WdfPdoInitSetDefaultLocale