Partager via


WdfDeviceInitAssignSDDLString, fonction (wdfdevice.h)

[S’applique à KMDF uniquement]

La méthode WdfDeviceInitAssignSDDLString affecte un paramètre de sécurité pour un appareil.

Syntaxe

NTSTATUS WdfDeviceInitAssignSDDLString(
  [in]           PWDFDEVICE_INIT  DeviceInit,
  [in, optional] PCUNICODE_STRING SDDLString
);

Paramètres

[in] DeviceInit

Pointeur vers une structure WDFDEVICE_INIT .

[in, optional] SDDLString

Pointeur vers une structure UNICODE_STRING qui décrit une chaîne Unicode. Cette chaîne est une représentation SDDL d’un descripteur de sécurité.

Valeur retournée

Si l’opération réussit, WdfDeviceInitAssignSDDLString retourne STATUS_SUCCESS. Les valeurs de retour supplémentaires sont les suivantes :

Code de retour Description
STATUS_INSUFFICIENT_RESOURCES
Le système ne peut pas allouer d’espace pour stocker le nom de l’appareil.

Remarques

Votre pilote peut spécifier un paramètre de sécurité à l’aide d’un sous-ensemble de SDDL (Security Descriptor Definition Language). Le fichier Wdmsec.h définit un ensemble de constantes au format SDDL_DEVOBJ_XXX que vous pouvez utiliser. Pour plus d’informations sur les descripteurs de sécurité et SDDL, consultez Sécurisation des objets d’appareil.

Les administrateurs système peuvent remplacer le descripteur de sécurité spécifié en ajoutant un descripteur de sécurité au Registre. Pour plus d’informations, consultez IoCreateDeviceSecure.

Avant d’appeler WdfDeviceInitAssignSDLString, votre pilote doit appeler WdfDeviceInitAssignName, ou il doit appeler WdfDeviceInitSetCharacteristics et spécifier FILE_AUTOGENERATED_DEVICE_NAME, car vous ne pouvez pas fournir de descripteur de sécurité pour un objet d’appareil sans nom.

Si le pilote appelle WdfDeviceInitAssignSDDLString, il doit le faire avant d’appeler WdfDeviceCreate. Pour plus d’informations sur l’appel de WdfDeviceCreate, consultez Création d’un objet d’appareil framework.

Pour plus d’informations sur les problèmes de sécurité, consultez Problèmes de sécurité pour les pilotes Framework-Based.

Si vous écrivez un pilote UMDF, vous devez modifier le fichier INF de votre pilote pour fournir un descripteur de sécurité approprié pour la pile. Pour plus d’informations, consultez Sécurisation des objets d’appareil. Pour plus d’informations sur l’utilisation du Registre, consultez Définition des propriétés du registre d’objets d’appareil pendant l’installation.

Exemples

L’exemple de code suivant affecte un paramètre de sécurité pour un appareil.

NTSTATUS status;

status = WdfDeviceInitAssignSDDLString(
                                       pDeviceInit,
                                       &SDDL_DEVOBJ_SYS_ALL_ADM_ALL
                                       );

Configuration requise

Condition requise Valeur
Plateforme cible Universal
Version KMDF minimale 1.0
En-tête wdfdevice.h (inclure Wdf.h)
Bibliothèque Wdf01000.sys (consultez Gestion des versions de la bibliothèque d’infrastructure).)
IRQL PASSIVE_LEVEL
Règles de conformité DDI ChildDeviceInitAPI(kmdf), DeviceInitAPI(kmdf), DriverCreate(kmdf), InitFreeDeviceCallback(kmdf), InitFreeDeviceCreate(kmdf), InitFreeNull(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf), PdoDeviceInitAPI(kmdf), PdoInitFreeDeviceCallback(kmdf), PdoInitFreeDeviceCreate(kmdf)