Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
[S’applique à KMDF et UMDF]
La méthode WdfDriverCreate crée un objet de pilote framework pour le pilote appelant.
Syntaxe
NTSTATUS WdfDriverCreate(
[in] PDRIVER_OBJECT DriverObject,
[in] PCUNICODE_STRING RegistryPath,
[in, optional] PWDF_OBJECT_ATTRIBUTES DriverAttributes,
[in] PWDF_DRIVER_CONFIG DriverConfig,
[out, optional] WDFDRIVER *Driver
);
Paramètres
[in] DriverObject
Pointeur vers une structure DRIVER_OBJECT qui représente un objet de pilote WDM (Windows Driver Model). Le pilote reçoit ce pointeur comme entrée à sa routine DriverEntry.
[in] RegistryPath
Pointeur vers une structure UNICODE_STRING qui contient la chaîne de chemin d’accès du Registre reçue par le pilote comme entrée à sa routine DriverEntry.
[in, optional] DriverAttributes
Pointeur vers une structure WDF_OBJECT_ATTRIBUTES allouée par l’appelant. (Le membre ParentObject de la structure doit être NULL .) Ce paramètre est facultatif et peut être WDF_NO_OBJECT_ATTRIBUTES.
[in] DriverConfig
Pointeur vers une structure WDF_DRIVER_CONFIG allouée par l’appelant.
[out, optional] Driver
Pointeur vers un emplacement qui reçoit un handle vers le nouvel objet de pilote d’infrastructure. Ce paramètre est facultatif et peut être WDF_NO_HANDLE.
Valeur de retour
WdfDriverCreate retourne STATUS_SUCCESS si l’opération réussit. Sinon, cette méthode peut retourner l’une des valeurs suivantes :
| Code de retour | Description |
|---|---|
|
Le pilote appelé WdfDriverCreate plusieurs fois. |
|
Un pilote non Plug-and-Play (PnP) spécifié une fonction de rappel EvtDriverDeviceAdd. |
Pour plus d’informations sur les valeurs de retour, consultez Framework Object Creation Errors.
Cette méthode peut également retourner d’autres valeurs NTSTATUS .
Une vérification des bogues système se produit si le paramètre DriverObject, RegistryPathou DriverConfig est NULL.
Remarques
Un pilote qui utilise Kernel-Mode Driver Framework doit appeler WdfDriverCreate à partir de sa routine DriverEntry, avant d’appeler d’autres routines d’infrastructure. Pour plus d’informations sur DriverEntry, consultez DriverEntry pour les pilotes basés sur Framework.
Avant d’appeler WdfDriverCreate, le pilote doit appeler WDF_DRIVER_CONFIG_INIT pour initialiser sa structure de WDF_DRIVER_CONFIG.
L’objet de pilote d’infrastructure est le haut de l’arborescence des objets d’infrastructure de votre pilote et n’a donc pas d’objet parent.
Si votre pilote fournit EvtCleanupCallback ou EvtDestroyCallback fonctions de rappel pour l’objet pilote, notez que l’infrastructure appelle ces fonctions de rappel à IRQL = PASSIVE_LEVEL.
Exemples
L’exemple de code suivant est une routine DriverEntry qui initialise une structure WDF_DRIVER_CONFIG, puis crée un objet de pilote d’infrastructure.
NTSTATUS
DriverEntry(
IN PDRIVER_OBJECT DriverObject,
IN PUNICODE_STRING RegistryPath
)
{
WDF_DRIVER_CONFIG config;
NTSTATUS status = STATUS_SUCCESS;
WDF_DRIVER_CONFIG_INIT(
&config,
MyEvtDeviceAdd
);
config.EvtDriverUnload = MyEvtDriverUnload;
status = WdfDriverCreate(
DriverObject,
RegistryPath,
WDF_NO_OBJECT_ATTRIBUTES,
&config,
WDF_NO_HANDLE
);
if (!NT_SUCCESS(status)) {
TraceEvents(
TRACE_LEVEL_ERROR,
DBG_PNP,
"WdfDriverCreate failed with status %!STATUS!",
status
);
}
return status;
}
Spécifications
| Besoin | Valeur |
|---|---|
| plateforme cible | Universel |
| version minimale de KMDF | 1.0 |
| version minimale de UMDF | 2.0 |
| En-tête | wdfdriver.h (include Wdf.h) |
| Bibliothèque | Wdf01000.sys (KMDF) ; WUDFx02000.dll (UMDF) |
| IRQL | PASSIVE_LEVEL |
| règles de conformité DDI | ChangeQueueState(kmdf), DriverAttributeChanged(kmdf), DriverCreate(kmdf), KmdfIrql() kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf), MiniportOnlyWdmDevice(kmdf) |