Función WdfPdoInitAssignInstanceID (wdfpdo.h)

[Solo se aplica a KMDF]

El método WdfPdoInitAssignInstanceID actualiza el identificador de instancia de un dispositivo secundario.

Sintaxis

NTSTATUS WdfPdoInitAssignInstanceID(
  [in] PWDFDEVICE_INIT  DeviceInit,
  [in] PCUNICODE_STRING InstanceID
);

Parámetros

[in] DeviceInit

Puntero a una estructura de WDFDEVICE_INIT .

[in] InstanceID

Puntero a una estructura UNICODE_STRING que contiene una cadena de identificador de instancia . El controlador puede asignar el búfer de la cadena desde el grupo paginado.

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 la cadena de identificador de instancia.
 

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

Comentarios

Para obtener más información sobre los identificadores de instancia, consulte Cadenas de identificación de dispositivos.

El controlador debe llamar a WdfPdoInitAssignInstanceID 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 convierte el número de serie de un dispositivo en una cadena Unicode y, a continuación, se registra la cadena Unicode como identificador de instancia del dispositivo.

DECLARE_UNICODE_STRING_SIZE(instanceID, INSTANCEID_LENGTH);

status =  RtlIntegerToUnicodeString(
                                    SerialNo,
                                    BASE_DEC,
                                    &instanceID
                                    );
status = WdfPdoInitAssignInstanceID(
                                    pDeviceInit,
                                    &instanceID
                                    );

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

RtlIntegerToUnicodeString

WdfPdoInitAddCompatibleID

WdfPdoInitAddHardwareID

WdfPdoInitAssignDeviceID