Macro WdfObjectGetTypedContext
[S’applique à KMDF et UMDF]
La macro WdfObjectGetTypedContext retourne un pointeur vers l’espace de contexte d’un objet.
Syntaxe
PVOID WdfObjectGetTypedContext(
Handle,
Type
);
Paramètres
Handle
Handle d’un objet framework.
Type
Nom de symbole d’une structure définie par le pilote qui décrit l’espace de contexte d’un objet.
Valeur retournée
WdfObjectGetTypedContext retourne un pointeur vers l’espace de contexte de l’objet spécifié.
Remarques
Vous pouvez utiliser la macro WdfObjectGetTypedContext pour obtenir un pointeur vers l’espace de contexte de n’importe quel objet framework. Utilisez cette macro comme alternative à l’appel d’une méthode d’accesseur de contexte spécifique à un objet créée par la macro WDF_DECLARE_CONTEXT_TYPE ou la macro WDF_DECLARE_CONTEXT_TYPE_WITH_NAME . Notez que si vous utilisez WdfObjectGetTypedContext, vous devez toujours utiliser WDF_DECLARE_CONTEXT_TYPE ou WDF_DECLARE_CONTEXT_TYPE_WITH_NAME pour déclarer votre contexte d’objet.
Pour plus d’informations sur ces macros, consultez Espace de contexte d’objet framework.
Exemples
L’exemple de code suivant définit une structure de contexte (MY_REQUEST_CONTEXT) pour un objet de requête, puis inscrit la structure.
typedef struct _MY_REQUEST_CONTEXT {
LIST_ENTRY ListEntry;
WDFMEMORY Memory;
} MY_REQUEST_CONTEXT, *PMY_REQUEST_CONTEXT;
WDF_DECLARE_CONTEXT_TYPE(MY_REQUEST_CONTEXT)
L’exemple de code suivant crée un objet de requête et obtient un pointeur vers son espace de contexte.
WDFREQUEST Request;
WDF_OBJECT_ATTRIBUTES MyRequestObjectAttributes;
PMY_REQUEST_CONTEXT pMyContext;
WDF_OBJECT_ATTRIBUTES_INIT(&MyRequestObjectAttributes);
WDF_OBJECT_ATTRIBUTES_SET_CONTEXT_TYPE(
&MyRequestObjectAttributes,
MY_REQUEST_CONTEXT
);
status = WdfRequestCreate(
&MyRequestObjectAttributes,
NULL,
&Request
);
if (!NT_SUCCESS(status)) {
return status;
}
pMyContext = WdfObjectGetTypedContext(
Request,
MY_REQUEST_CONTEXT
);
Configuration requise
Plateforme cible |
Universal |
Version KMDF minimale |
1.0 |
Version UMDF minimale |
2.0 |
En-tête |
Wdfobject.h (inclure Wdf.h) |
Bibliothèque |
Wdf01000.sys (KMDF) ; WUDFx02000.dll (UMDF) |
IRQL |
N’importe quel niveau |