FLT_TAG_DATA_BUFFER struttura (fltkernel.h)
La struttura FLT_TAG_DATA_BUFFER contiene informazioni su un tag punto di ripristino.
Sintassi
typedef struct _FLT_TAG_DATA_BUFFER {
ULONG FileTag;
USHORT TagDataLength;
USHORT UnparsedNameLength;
union {
struct {
USHORT SubstituteNameOffset;
USHORT SubstituteNameLength;
USHORT PrintNameOffset;
USHORT PrintNameLength;
ULONG Flags;
WCHAR PathBuffer[1];
} SymbolicLinkReparseBuffer;
struct {
USHORT SubstituteNameOffset;
USHORT SubstituteNameLength;
USHORT PrintNameOffset;
USHORT PrintNameLength;
WCHAR PathBuffer[1];
} MountPointReparseBuffer;
struct {
UCHAR DataBuffer[1];
} GenericReparseBuffer;
struct {
GUID TagGuid;
UCHAR DataBuffer[1];
} GenericGUIDReparseBuffer;
};
} FLT_TAG_DATA_BUFFER, *PFLT_TAG_DATA_BUFFER;
Members
FileTag
Tag che identifica in modo univoco il punto di correzione. Può essere uno dei valori definiti da Microsoft IO_REPARSE_TAG_XXX definiti in ntifs.h o un valore definito dall'ISV.
TagDataLength
Dimensioni, in byte, dei dati di ripristino a cui punta il membro DataBuffer .
UnparsedNameLength
Lunghezza, in byte, della parte non riparata del nome file a cui fa riferimento il membro FileName dell'oggetto file associato. Per altre informazioni sul membro FileName , vedere FILE_OBJECT.
SymbolicLinkReparseBuffer
Quando FileTag è IO_REPARSE_TAG_SYMLINK, è possibile usare questa struttura per interpretare il payload.
SymbolicLinkReparseBuffer.SubstituteNameOffset
Offset, in byte, della stringa del nome sostitutivo nella matrice PathBuffer . Si noti che questo offset deve essere diviso per sizeof(WCHAR) per ottenere l'indice della matrice.
SymbolicLinkReparseBuffer.SubstituteNameLength
Lunghezza, in byte, della stringa del nome sostitutivo. Se questa stringa è NULL_terminated, SubstituteNameLength non include spazio per il terminatore UNICODE_NULL.
SymbolicLinkReparseBuffer.PrintNameOffset
Offset, in byte, della stringa del nome di stampa nella matrice PathBuffer . Si noti che questo offset deve essere diviso per sizeof(WCHAR) per ottenere l'indice della matrice.
SymbolicLinkReparseBuffer.PrintNameLength
Lunghezza, in byte, della stringa del nome di stampa. Se questa stringa è NULL_terminated, PrintNameLength non include spazio per il terminatore UNICODE_NULL.
SymbolicLinkReparseBuffer.Flags
Indica se il collegamento simbolico è assoluto o relativo. Se Flag contiene SYMLINK_FLAG_RELATIVE, il collegamento simbolico contenuto in PathBuffer (in offset SubstituteNameOffset) viene elaborato come collegamento relativo; in caso contrario, viene elaborato come collegamento assoluto.
SymbolicLinkReparseBuffer.PathBuffer[1]
Primo carattere della stringa di percorso. Questo carattere viene seguito in memoria dal resto della stringa. La stringa del percorso contiene la stringa nome sostitutiva e la stringa del nome di stampa. Le stringhe nome di sostituzione e nome di stampa possono essere visualizzate in qualsiasi ordine in PathBuffer. Per individuare le stringhe di nome sostitutivo e nome di stampa in PathBuffer, usare i membri SubstituteNameOffset, SubstituteNameLength, PrintNameOffset e PrintNameLength.
MountPointReparseBuffer
Quando FileTag è IO_REPARSE_TAG_MOUNT_POINT, è possibile usare questa struttura per interpretare il payload.
MountPointReparseBuffer.SubstituteNameOffset
Offset, in byte, della stringa del nome sostitutivo nella matrice PathBuffer . Si noti che questo offset deve essere diviso per sizeof(WCHAR) per ottenere l'indice della matrice.
MountPointReparseBuffer.SubstituteNameLength
Lunghezza, in byte, della stringa del nome sostitutivo. Se questa stringa è NULL_terminated, SubstituteNameLength non include spazio per il terminatore UNICODE_NULL.
MountPointReparseBuffer.PrintNameOffset
Offset, in byte, della stringa del nome di stampa nella matrice PathBuffer . Si noti che questo offset deve essere diviso per sizeof(WCHAR) per ottenere l'indice della matrice.
MountPointReparseBuffer.PrintNameLength
Lunghezza, in byte, della stringa del nome di stampa. Se questa stringa è NULL_terminated, PrintNameLength non include spazio per il terminatore UNICODE_NULL.
MountPointReparseBuffer.PathBuffer[1]
Primo carattere della stringa di percorso. Questo carattere viene seguito in memoria dal resto della stringa. La stringa del percorso contiene la stringa nome sostitutiva e la stringa del nome di stampa. Le stringhe nome di sostituzione e nome di stampa possono essere visualizzate in qualsiasi ordine in PathBuffer. Per individuare le stringhe di nome sostitutivo e nome di stampa in PathBuffer, usare i membri SubstituteNameOffset, SubstituteNameLength, PrintNameOffset e PrintNameLength.
GenericReparseBuffer
È possibile usare questa struttura per interpretare il payload per qualsiasi tag IO_REPARSE_TAG_XXX definito da Microsoft.
GenericReparseBuffer.DataBuffer[1]
Puntatore a un buffer che contiene dati definiti dall'utente per il punto di ripristino.
GenericGUIDReparseBuffer
È possibile usare questa struttura per interpretare il payload per qualsiasi tag IO_REPARSE_TAG_XXX .
GenericGUIDReparseBuffer.TagGuid
Identificatore univoco globale (GUID) che identifica il tipo di punto reparse. Se FileTag non è un tag Microsoft, questo membro non può essere NULL.
GenericGUIDReparseBuffer.DataBuffer[1]
Puntatore a un buffer che contiene dati definiti dall'utente per il punto di ripristino.
Commenti
Un minifilter può usare la struttura di FLT_TAG_DATA_BUFFER per archiviare informazioni su un tag punto di ripristino.
Dall'unione è possibile usare la struttura GenericGUIDReparseBuffer per interpretare il payload per qualsiasi tag IO_REPARSE_TAG_XXX oppure usare facoltativamente una delle altre strutture all'interno dell'unione come indicato di seguito:
Usare la struttura GenericReparseBuffer per qualsiasi tag IO_REPARSE_TAG_XXX definito da Microsoft.
Usare la struttura SimbolicLinkReparseBuffer quando FileTag è IO_REPARSE_TAG_SYMLINK.
Usare la struttura MountPointReparseBuffer quando FileTag è IO_REPARSE_TAG_MOUNT_POINT.
Un puntatore a una struttura di FLT_TAG_DATA_BUFFER che contiene i dati dei tag dei punti reparse per un'operazione viene archiviato nel membro TagData della struttura FLT_CALLBACK_DATA per l'operazione.
La macro FLT_TAG_DATA_BUFFER_HEADER_SIZE restituisce le dimensioni della parte fissa della struttura FLT_TAG_DATA_BUFFER.
Requisiti
Requisito | Valore |
---|---|
Intestazione | fltkernel.h (include FltKernel.h) |
Vedi anche
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per