Compartir a través de


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

Consulte también

WdfPdoInitSetDefaultLocale