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