Compartir a través de


Función WdfStringCreate (wdfstring.h)

[Se aplica a KMDF y UMDF]

El método WdfStringCreate crea un objeto de cadena de marco y, opcionalmente, asigna una cadena Unicode especificada al objeto .

Sintaxis

NTSTATUS WdfStringCreate(
  [in, optional] PCUNICODE_STRING       UnicodeString,
  [in, optional] PWDF_OBJECT_ATTRIBUTES StringAttributes,
  [out]          WDFSTRING              *String
);

Parámetros

[in, optional] UnicodeString

Puntero a una estructura de UNICODE_STRING que contiene una constante de cadena Unicode. El marco copia la cadena en el nuevo objeto de cadena de marco. Este puntero es opcional y puede ser NULL.

[in, optional] StringAttributes

Puntero a una estructura de WDF_OBJECT_ATTRIBUTES que contiene atributos proporcionados por el controlador para el nuevo objeto de cadena. Este parámetro es opcional y se puede WDF_NO_OBJECT_ATTRIBUTES.

[out] String

Puntero a una ubicación que recibe un identificador para el nuevo objeto de cadena.

Valor devuelto

WdfStringCreate devuelve STATUS_SUCCESS si la operación se realiza correctamente. De lo contrario, el método podría devolver uno de los siguientes valores:

Código devuelto Descripción
STATUS_INVALID_DEVICE_REQUEST

No se llamó a WdfStringCreate en IRQL = PASSIVE_LEVEL.

STATUS_INVALID_PARAMETER
Se especificó un parámetro no válido.
STATUS_INSUFFICIENT_RESOURCES
No se pudo asignar un objeto de cadena.
 

Para obtener una lista de otros valores devueltos que podría devolver el método WdfStringCreate , vea Errores de creación de objetos de marco.

Este método también podría devolver otros valores NTSTATUS.

Comentarios

El elemento primario predeterminado para los objetos de cadena de marco es el objeto del controlador del marco de trabajo. Sin embargo, a menos que la cadena esté asociada al controlador, el controlador debe establecer el miembro ParentObject de la estructura WDF_OBJECT_ATTRIBUTES en un objeto que representa el ámbito de la cadena. Normalmente, las cadenas son específicas del dispositivo y su objeto primario debe ser un objeto de dispositivo de marco.

Si el controlador proporciona funciones de devolución de llamada EvtCleanupCallback o EvtDestroyCallback para el objeto de cadena de marco, tenga en cuenta que el marco llama a estas funciones de devolución de llamada en IRQL = PASSIVE_LEVEL.

Para obtener más información sobre los objetos de cadena de marco, vea Uso de objetos de cadena.

Ejemplos

En el ejemplo de código siguiente se inicializa una estructura de WDF_OBJECT_ATTRIBUTES y, a continuación, se crea un objeto de cadena de marco.

NTSTATUS  status;
WDFSTRING  stringHandle = NULL;
WDF_OBJECT_ATTRIBUTES  attributes;

WDF_OBJECT_ATTRIBUTES_INIT(&attributes);
attributes.ParentObject = pDeviceContext->Device;
status = WdfStringCreate(
                         NULL,
                         &attributes,
                         &stringHandle
                         );
if (!NT_SUCCESS(status)){
    return status;
}

Requisitos

Requisito Value
Plataforma de destino Universal
Versión mínima de KMDF 1.0
Versión mínima de UMDF 2.0
Encabezado wdfstring.h (incluya Wdf.h)
Library Wdf01000.sys (KMDF); WUDFx02000.dll (UMDF)
IRQL PASSIVE_LEVEL
Reglas de cumplimiento de DDI DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf)

Consulte también

UNICODE_STRING

WDF_OBJECT_ATTRIBUTES

WdfStringGetUnicodeString