IOMMU_DEVICE_CREATE fonction de rappel (wdm.h)
Prend un objet d’appareil physique et crée un jeton opaque représentant l'IOMMU_DMA_DEVICE qui peut être utilisé avec les API d’interface IOMMU.
Syntaxe
IOMMU_DEVICE_CREATE IommuDeviceCreate;
NTSTATUS IommuDeviceCreate(
PDEVICE_OBJECT DeviceObject,
PIOMMU_DEVICE_CREATION_CONFIGURATION DeviceConfig,
PIOMMU_DMA_DEVICE *DmaDeviceOut
)
{...}
Paramètres
DeviceObject
[Dans] Pointeur vers l’objet d’appareil physique de l’appareil représenté par l'IOMMU_DMA_DEVICE créé.
DeviceConfig
[Dans, facultatif] Pointeur facultatif vers une liste de configurations qui peuvent être nécessaires pour la création d’appareils, en fonction du système. Actuellement, cela est nécessaire pour les appareils ACPI sur ARM64.
DmaDeviceOut
[Out] Pointeur vers le jeton opaque représentant le IOMMU_DMA_DEVICEcréé.
Valeur de retour
STATUS_SUCCESS si l’opération réussit. Les valeurs de retour d’erreur possibles incluent les codes d’état suivants.
Retourner le code | Description |
---|---|
|
Le PDO fourni représente un appareil qui n’est pas derrière un IOMMU. |
|
Les entrées fournies ne correspondent pas à la prise en charge du système. |
|
La routine n’a pas pu allouer des ressources requises pour une structure **IOMMU_DMA_DEVICE**. |
|
L’interface IOMMU sous-jacente n’est pas correctement implémentée pour la fonction « GetDeviceId ». |
|
Le PDO fourni représente un appareil qui n’est pas derrière un IOMMU.
Si l’appareil n’est pas trouvé derrière un IOMMU, il doit déjà disposer d’un accès direct à la mémoire physique et la plateforme n’est pas conforme À DMA Guard. |
Pour plus d’informations, consultez valeurs NTSTATUS.
Remarques
Les appareils ACPI sur les systèmes ARM64 doivent fournir des mappages d’entrée via le paramètre DeviceConfig
. Tous les autres types d’appareils sur les systèmes ARM64 et tous les appareils sur les systèmes non ARM64 doivent PAS fournir des configurations d’appareil ; sinon, l’appel échoue sur STATUS_INVALID_PARAMETER_2.
Exigences
Exigence | Valeur |
---|---|
serveur minimum pris en charge | Windows Server 2022 |
d’en-tête | wdm.h (include Wdm.h) |