IOMMU_DEVICE_CREATE fonction de rappel (wdm.h)
Prend un objet d’appareil physique et crée un jeton opaque représentant le 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
[In] Pointeur vers l’objet d’appareil physique de l’appareil que le IOMMU_DMA_DEVICE créé représentera.
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 obligatoire pour les appareils ACPI sur ARM64.
DmaDeviceOut
[Out] Pointeur vers le jeton opaque représentant le IOMMU_DMA_DEVICE créé.
Valeur retournée
STATUS_SUCCESS si l’opération réussit. Les valeurs de retour d’erreur possibles incluent les codes status suivants.
Code de retour | Description |
---|---|
|
L’AOP fourni représente un appareil qui n’est pas derrière une unité iommu. |
|
Les entrées fournies ne correspondent pas à la prise en charge du système. |
|
La routine n’a pas pu allouer les ressources requises pour une structure **IOMMU_DMA_DEVICE**. |
|
L’interface IOMMU sous-jacente n’est pas correctement implémentée pour la fonction « GetDeviceId ». |
|
L’AOP fourni représente un appareil qui n’est pas derrière une unité 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 DeviceConfig
paramètre . Tous les autres types d’appareils sur les systèmes ARM64 et tous les appareils sur les systèmes non ARM64 ne doivent PAS fournir de configurations d’appareil ; sinon, l’appel échoue sur STATUS_INVALID_PARAMETER_2.
Configuration requise
Condition requise | Valeur |
---|---|
Serveur minimal pris en charge | Windows Server 2022 |
En-tête | wdm.h (inclure Wdm.h) |