Macro FsRtlInitPerStreamContext (ntifs.h)
La macro FsRtlInitPerStreamContext initialise une structure de contexte de pilote de filtre.
Syntaxe
void FsRtlInitPerStreamContext(
_fc,
_owner,
_inst,
_cb
);
Paramètres
_fc
Pointeur vers une structure de FSRTL_PER_STREAM_CONTEXT allouée par l’appelant à utiliser pour gérer les informations de contexte d’un flux de fichiers. Cette structure peut être utilisée telle qu’elle est ou incorporée dans une structure de contexte par flux définie par pilote. Les deux types de structure sont généralement alloués en appelant ExAllocatePoolWithTag.
_owner
Pointeur vers une variable allouée par l’appelant qui identifie de manière unique le propriétaire de la structure de contexte par flux. Le format de cette variable est le pilote de filtre - spécifique. Les enregistreurs de filtres doivent choisir une valeur à la fois significative et pratique, telle que l’adresse d’un objet de pilote ou d’un objet d’appareil. Les appelants doivent spécifier une valeur non NULL pour ce paramètre.
_inst
Pointeur vers un pilote de filtre : variable allouée qui peut être utilisée pour distinguer les structures de contexte par flux créées par le même pilote de filtre. Le format de cette variable est le pilote de filtre - spécifique. Les rédacteurs de filtres doivent choisir une valeur à la fois significative et pratique, telle que l’adresse de l’objet de contexte de flux de flux pour le flux de fichiers. (Pour obtenir cette adresse à partir d’un objet de fichier, utilisez la macro FsRtlGetPerStreamContextPointer .) Ce paramètre est facultatif et peut être NULL.
_cb
Pointeur vers une routine de rappel qui libère la structure de contexte par flux. Les appelants doivent spécifier une valeur non NULL pour ce paramètre. Cette routine et ses paramètres sont définis comme suit :
typedef VOID (*PFREE_FUNCTION) ( IN PVOID Buffer ); |
- Tampon
Pointeur vers la structure de contexte par flux à libérer. La routine FreeCallback cast généralement ce pointeur vers le type de pointeur de structure approprié et le libère en appelant ExFreePool.
Valeur de retour
None
Remarques
Un pilote de filtre de système de fichiers utilise la macro FsRtlInitPerStreamContext pour initialiser une structure de contexte par flux nouvellement allouée avant de l’associer à un flux de fichiers. La structure de contexte initialisée peut être passée en tant que paramètre à FsRtlInsertPerStreamContext.
FsRtlInitPerStreamContext stocke l’adresse de la routine FreeCallback dans le membre FreeCallback de la structure FSRTL_PER_STREAM_CONTEXT.
La routine FreeCallback est appelée dans IRQL <= APC_LEVEL. Généralement, il est appelé à l’IRQL PASSIVE_LEVEL.
Une fois la structure de contexte associée à un flux de fichiers, elle peut être récupérée en appelant FsRtlLookupPerStreamContext ou supprimée en appelant FsRtlRemovePerStreamContext.
Pour plus d’informations, consultez Suivi Per-Stream contexte dans un pilote de filtre de système de fichiers hérité.
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Windows XP ; Correctif cumulatif pour Windows 2000 Service Pack 4 (SP4) |
Plateforme cible | Desktop (Expérience utilisateur) |
En-tête | ntifs.h (inclure Ntifs.h) |
IRQL | N’importe quel niveau |
Voir aussi
FsRtlGetPerStreamContextPointer