struttura REPARSE_DATA_BUFFER (ntifs.h)
La struttura REPARSE_DATA_BUFFER contiene i dati dei punti di analisi per un punto di riferimento Microsoft. È invece possibile usare REPARSE_DATA_BUFFER_EX. I proprietari di punti di ripristino 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;
Membri
ReparseTag
Tag del punto di ripristino. Deve essere un tag punto di riferimento Microsoft. Vedere la sezione
ReparseDataLength
Dimensioni, in byte, dei dati di analisi nel buffer a cui DataBuffer punta.
Reserved
Lunghezza, in byte, della parte non analizzata del nome file a cui punta il FileName membro dell'oggetto file associato. Per altre informazioni sul membro
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
DUMMYUNIONNAME.SymbolicLinkReparseBuffer.PathBuffer[1]
Primo carattere della stringa di percorso. Questo carattere è seguito in memoria dal resto della stringa. La stringa del percorso contiene la stringa del nome sostitutivo e la stringa del nome di stampa. I nomi sostitutivi e le stringhe del nome di stampa possono essere visualizzati in qualsiasi ordine nel PathBuffer. Per individuare i nomi sostitutivi e le stringhe dei nomi di stampa nel
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 è seguito in memoria dal resto della stringa. La stringa del percorso contiene la stringa del nome sostitutivo e la stringa del nome di stampa. I nomi sostitutivi e le stringhe del nome di stampa possono essere visualizzati in qualsiasi ordine nel PathBuffer. Per individuare i nomi sostitutivi e le stringhe dei nomi di stampa nel
DUMMYUNIONNAME.GenericReparseBuffer
DUMMYUNIONNAME.GenericReparseBuffer.DataBuffer[1]
Puntatore a un buffer che contiene i dati definiti da Microsoft per il reparse point.
Osservazioni
La struttura REPARSE_DATA_BUFFER viene usata dai file system, dai filtri e dai driver minifiltri Microsoft, nonché dal gestore di I/O, per archiviare i dati per un punto reparse.
Questa struttura può essere usata solo per i punti di analisi Microsoft. I proprietari di punti di ricoparse di terze parti devono usare invece la struttura REPARSE_GUID_DATA_BUFFER.
I reparse points Microsoft possono 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:
Usare 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 dei punti di analisi, vedere la documentazione di Microsoft Windows SDK.
Fabbisogno
Requisito | Valore |
---|---|
intestazione |
ntifs.h (include Ntifs.h, Fltkernel.h) |
Vedere anche
FILE_REPARSE_POINT_INFORMATION