struttura REPARSE_DATA_BUFFER (ntifs.h)
La struttura REPARSE_DATA_BUFFER contiene i dati dei reparse point per un punto di riferimento Microsoft. È invece possibile usare REPARSE_DATA_BUFFER_EX . I proprietari di reparse point di terze parti devono usare invece la struttura REPARSE_GUID_DATA_BUFFER .
Sintassi
typedef struct _REPARSE_DATA_BUFFER {
ULONG ReparseTag;
USHORT ReparseDataLength;
USHORT Reserved;
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;
} DUMMYUNIONNAME;
} REPARSE_DATA_BUFFER, *PREPARSE_DATA_BUFFER;
Members
ReparseTag
Tag del punto di ripristino. Deve essere un tag del punto di controllo Microsoft. Vedere la sezione Osservazioni seguente.
ReparseDataLength
Dimensioni, in byte, dei dati di analisi nel buffer a cui punta DataBuffer .
Reserved
Lunghezza, in byte, della parte non analizzata del nome file a cui punta il membro FileName dell'oggetto file associato. Per altre informazioni sul membro FileName , vedere FILE_OBJECT<. Questo membro è valido solo per le operazioni di creazione quando l'I/O ha esito negativo con STATUS_REPARSE. Per tutti gli altri scopi, ad esempio l'impostazione o l'esecuzione di query su un punto reparse per i dati reparse, questo membro viene considerato riservato.
DUMMYUNIONNAME
DUMMYUNIONNAME.SymbolicLinkReparseBuffer
DUMMYUNIONNAME.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.
DUMMYUNIONNAME.SymbolicLinkReparseBuffer.SubstituteNameLength
Lunghezza, in byte, della stringa del nome sostitutivo. Se questa stringa è con terminazione NULL, SubstituteNameLength non include spazio per il carattere di terminazione UNICODE_NULL.
DUMMYUNIONNAME.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.
DUMMYUNIONNAME.SymbolicLinkReparseBuffer.PrintNameLength
Lunghezza, in byte, della stringa del nome di stampa. Se questa stringa è con terminazione NULL, PrintNameLength non include spazio per il carattere di terminazione UNICODE_NULL.
DUMMYUNIONNAME.SymbolicLinkReparseBuffer.Flags
Indica se il collegamento simbolico è assoluto o relativo. Se Flags contiene SYMLINK_FLAG_RELATIVE, il collegamento simbolico contenuto nella matrice PathBuffer (in corrispondenza dell'offset SubstituteNameOffset) viene elaborato come collegamento simbolico relativo; in caso contrario, viene elaborato come collegamento simbolico assoluto.
DUMMYUNIONNAME.SymbolicLinkReparseBuffer.PathBuffer[1]
Primo carattere della stringa di percorso. Questo carattere viene seguito in memoria dal resto della stringa. La stringa di percorso contiene la stringa del nome sostitutivo e la stringa del nome di stampa. Il nome sostitutivo e le stringhe del nome di stampa possono essere visualizzati in qualsiasi ordine in PathBuffer. Per individuare il nome sostitutivo e le stringhe dei nomi di stampa in PathBuffer, utilizzare i membri SubstituteNameOffset, SubstituteNameLength, PrintNameOffset e PrintNameLength .
DUMMYUNIONNAME.MountPointReparseBuffer
DUMMYUNIONNAME.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.
DUMMYUNIONNAME.MountPointReparseBuffer.SubstituteNameLength
Lunghezza, in byte, della stringa del nome sostitutivo. Se questa stringa è con terminazione NULL, SubstituteNameLength non include spazio per il carattere di terminazione UNICODE_NULL.
DUMMYUNIONNAME.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.
DUMMYUNIONNAME.MountPointReparseBuffer.PrintNameLength
Lunghezza, in byte, della stringa del nome di stampa. Se questa stringa è con terminazione NULL, PrintNameLength non include spazio per il carattere di terminazione UNICODE_NULL.
DUMMYUNIONNAME.MountPointReparseBuffer.PathBuffer[1]
Primo carattere della stringa di percorso. Questo carattere viene seguito in memoria dal resto della stringa. La stringa di percorso contiene la stringa del nome sostitutivo e la stringa del nome di stampa. Il nome sostitutivo e le stringhe del nome di stampa possono essere visualizzati in qualsiasi ordine in PathBuffer. Per individuare il nome sostitutivo e le stringhe dei nomi di stampa in PathBuffer, utilizzare i membri SubstituteNameOffset, SubstituteNameLength, PrintNameOffset e PrintNameLength .
DUMMYUNIONNAME.GenericReparseBuffer
DUMMYUNIONNAME.GenericReparseBuffer.DataBuffer[1]
Puntatore a un buffer contenente i dati definiti da Microsoft per il reparse point.
Commenti
La struttura REPARSE_DATA_BUFFER viene usata dai file system, dai filtri e dai driver minifilter microsoft, nonché dal gestore di I/O, per archiviare i dati per un punto di analisi.
Questa struttura può essere usata solo per i punti di analisi Microsoft. I proprietari di punti di ripristino di terze parti devono usare invece la struttura REPARSE_GUID_DATA_BUFFER .
Microsoft reparse points può usare la struttura REPARSE_DATA_BUFFER o la struttura REPARSE_GUID_DATA_BUFFER.
Dall'unione è possibile usare la struttura GenericReparseBuffer per interpretare il payload per qualsiasi tag IO_REPARSE_TAG_XXX oppure, facoltativamente, usare una delle altre strutture all'interno dell'unione come indicato di seguito:
Utilizzare la struttura SymbolicLinkReparseBuffer quando FileTag è IO_REPARSE_TAG_SYMLINK.
Utilizzare la struttura MountPointReparseBuffer quando FileTag è IO_REPARSE_TAG_MOUNT_POINT.
Per altre informazioni sui tag di reparse point, vedere la documentazione di Microsoft Windows SDK.
Requisiti
Requisito | Valore |
---|---|
Intestazione | ntifs.h (include Ntifs.h, Fltkernel.h) |
Vedi anche
FILE_REPARSE_POINT_INFORMATION