Notes
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 uniquement à KMDF]
La méthode WdfDeviceMiniportCreate crée un objet d’appareil framework qu’un pilote miniport peut utiliser.
Syntaxe
NTSTATUS WdfDeviceMiniportCreate(
[in] WDFDRIVER Driver,
[in, optional] PWDF_OBJECT_ATTRIBUTES Attributes,
[in] PDEVICE_OBJECT DeviceObject,
[in, optional] PDEVICE_OBJECT AttachedDeviceObject,
[in, optional] PDEVICE_OBJECT Pdo,
[out] WDFDEVICE *Device
);
Paramètres
[in] Driver
Handle de l’objet pilote de framework du pilote, obtenu par un appel précédent à WdfDriverCreate.
[in, optional] Attributes
Pointeur vers une structure WDF_OBJECT_ATTRIBUTES allouée par l’appelant qui contient des attributs pour le nouvel objet. Ce paramètre est facultatif et peut être WDF_NO_OBJECT_ATTRIBUTES.
[in] DeviceObject
Pointeur vers une structure de DEVICE_OBJECT WDM qui représente l’objet de périphérique fonctionnel (FDO) pour le pilote miniport.
[in, optional] AttachedDeviceObject
Pointeur vers une structure de DEVICE_OBJECT WDM qui représente l’objet appareil inférieur suivant dans la pile d’appareils.
[in, optional] Pdo
Pointeur vers une structure DEVICE_OBJECT WDM qui représente l’objet d’appareil physique (PDO) de l’appareil.
[out] Device
Pointeur vers un emplacement qui reçoit un handle vers le nouvel objet d’appareil framework.
Valeur de retour
Si la méthode WdfDeviceMiniportCreate ne rencontre aucune erreur, elle retourne STATUS_SUCCESS. Les valeurs de retour supplémentaires sont les suivantes :
Code de retour | Description |
---|---|
|
Un objet d’appareil n’a pas pu être alloué. |
Pour obtenir la liste d’autres valeurs de retour qui WdfDeviceMiniportCreate peuvent retourner, consultez Framework Object Creation Errors.
La méthode peut retourner d’autres valeurs NTSTATUS .
Une vérification de bogue se produit si le pilote fournit un handle d’objet non valide.
Remarques
Si votre pilote miniport utilise l’infrastructure, le pilote miniport doit appeler WdfDeviceMiniportCreate lorsque son pilote de port l’informe qu’un appareil est disponible. Les pilotes miniport n’appellent pas WdfDeviceCreate.
Votre pilote miniport peut recevoir son DeviceObject, AttachedDeviceObjectet pointeurs PDO de son pilote de port. Par exemple, un pilote miniport NDIS peut obtenir ces pointeurs en appelant NdisMGetDeviceProperty.
Les restrictions suivantes s’appliquent aux objets d’appareil framework qu’un pilote miniport obtient en appelant WdfDeviceMiniportCreate:
- L’appareil que l’objet de l’appareil représente doit prendre en charge Plug-and-Play.
- L’objet appareil ne prend pas en charge les fonctions de rappel d’événement de l’objet appareil. Par conséquent, le pilote de port doit gérer toutes les opérations de gestion de l’alimentation et plug-and-Play (PnP).
- Le handle d’objet d’appareil ne peut pas être transmis à WdfWmiProviderCreate. Le pilote de port doit donc fournir toute prise en charge requise pour Windows Management Instrumentation (WMI).
- Le handle d’objet d’appareil ne peut pas être transmis à WdfIoQueueCreate. Par conséquent, l’infrastructure ne prend pas en charge les files d’attente d’E/S pour les pilotes miniport.
- Le handle d’objet d’appareil ne peut pas être passé à WdfInterruptCreate, de sorte que l’infrastructure ne prend pas en charge les objets d’interruption pour les pilotes miniport.
- Le handle d’objet d’appareil ne peut pas être transmis à des méthodes d’objet d’appareil d’infrastructure générale , à l’exception de WdfDeviceGetIoTarget, WdfDeviceWdmGetDevice, et WdfDeviceWdmGetDeviceWdmGetPhysicalDevice.
- Le handle d’objet d’appareil ne peut pas être transmis à des méthodes FDO framework sauf WdfFdoQueryForInterface.
- Le handle d’objet d’appareil ne peut pas être transmis à des méthodes PDO de framework ou à WdfChildListCreate, de sorte que le pilote miniport ne peut pas être un pilote de bus.
- Le pilote doit appeler WdfObjectDelete pour supprimer l’objet d’appareil qui WdfDeviceMiniportCreate crée.
Pour envoyer des requêtes d’E/S à des cibles d’E/S, le pilote miniport peut transmettre le handle d’objet d’appareil à WdfDeviceGetIoTarget, WdfIoTargetCreate, ou WdfUsbTargetDeviceCreateWithParameters.
Le pilote miniport peut transmettre le handle d’objet d’appareil à WdfDmaEnablerCreate si l’appareil prend en charge les opérations DMA.
Pour plus d’informations sur les pilotes miniports, consultez Using Kernel-Mode Driver Framework with Miniport Drivers.
Exemples
L’exemple de code suivant appelle NdisMGetDeviceProperty pour obtenir deviceObject, AttachedDeviceObjectet pointeurs PDO ; initialise l’espace de contexte de l’objet d’appareil et crée un objet d’appareil miniport.
WDF_OBJECT_ATTRIBUTES ObjectAttributes;
NdisMGetDeviceProperty(
MiniportAdapterHandle,
&Adapter->Pdo,
&Adapter->Fdo,
&Adapter->NextDeviceObject,
NULL,
NULL
);
WDF_OBJECT_ATTRIBUTES_INIT_CONTEXT_TYPE(
&ObjectAttributes,
WDF_DEVICE_INFO
);
ntStatus = WdfDeviceMiniportCreate(
WdfGetDriver(),
&ObjectAttributes,
Adapter->Fdo,
Adapter->NextDeviceObject,
Adapter->Pdo,
&Adapter->WdfDevice
);
if (!NT_SUCCESS (ntStatus)) {
Status = NDIS_STATUS_FAILURE;
break;
}
Spécifications
Besoin | Valeur |
---|---|
plateforme cible | Universel |
version minimale de KMDF | 1.0 |
En-tête | wdfminiport.h (include Wdfminiport.h) |
Bibliothèque | Wdf01000.sys (voir Versioning de la bibliothèque Framework.) |
IRQL | PASSIVE_LEVEL |
règles de conformité DDI | DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf) |