FS_FILTER_CALLBACK_DATA struttura (ntifs.h)
FS_FILTER_CALLBACK_DATA è la struttura dei dati di callback per un'operazione di FS_FILTER_CALLBACK o FS_FILTER_COMPLETION_CALLBACK di un FS_FILTER_CALLBACKS.
Sintassi
typedef struct _FS_FILTER_CALLBACK_DATA {
ULONG SizeOfFsFilterCallbackData;
UCHAR Operation;
UCHAR Reserved;
struct _DEVICE_OBJECT *DeviceObject;
struct _FILE_OBJECT *FileObject;
FS_FILTER_PARAMETERS Parameters;
} FS_FILTER_CALLBACK_DATA, *PFS_FILTER_CALLBACK_DATA;
Members
SizeOfFsFilterCallbackData
Dimensioni di questa struttura, in byte. Impostare su sizeof(FS_FILTER_CALLBACK_DATA)
.
Operation
Operazione di file system per cui viene richiamata la routine di callback. Questa operazione può essere una delle seguenti:
- FS_FILTER_ACQUIRE_FOR_SECTION_SYNCHRONIZATION
- FS_FILTER_RELEASE_FOR_SECTION_SYNCHRONIZATION
- FS_FILTER_ACQUIRE_FOR_MOD_WRITE
- FS_FILTER_RELEASE_FOR_MOD_WRITE
- FS_FILTER_ACQUIRE_FOR_CC_FLUSH
- FS_FILTER_RELEASE_FOR_CC_FLUSH FS_FILTER_QUERY_OPEN
Reserved
Riservato per l'utilizzo nel sistema.
DeviceObject
Oggetto Device per questa operazione.
FileObject
Oggetto file per questa operazione.
Parameters
Unione contenente tutti i parametri specifici dell'operazione. Vedere la sezione Osservazioni.
Commenti
è un membro della struttura FS_FILTER_CALLBACKS , che viene passata a FsRtlRegisterFileSystemFilterCallbacks in una routine DriverEntry di un file system o di filtro.
L'unione Dei parametri è definita come segue:
typedef union _FS_FILTER_PARAMETERS {
//
// AcquireForModifiedPageWriter
//
struct {
PLARGE_INTEGER EndingOffset;
PERESOURCE *ResourceToRelease;
} AcquireForModifiedPageWriter;
//
// ReleaseForModifiedPageWriter
//
struct {
PERESOURCE ResourceToRelease;
} ReleaseForModifiedPageWriter;
//
// AcquireForSectionSynchronization
//
struct {
FS_FILTER_SECTION_SYNC_TYPE SyncType;
ULONG PageProtection;
PFS_FILTER_SECTION_SYNC_OUTPUT OutputInformation;
ULONG Flags;
} AcquireForSectionSynchronization;
//
// QueryOpen
//
struct {
PIRP Irp;
PVOID FileInformation;
PULONG Length;
FILE_INFORMATION_CLASS FileInformationClass;
NTSTATUS CompletionStatus;
} QueryOpen;
//
// Other
//
struct {
PVOID Argument1;
PVOID Argument2;
PVOID Argument3;
PVOID Argument4;
PVOID Argument5;
} Others;
} FS_FILTER_PARAMETERS, *PFS_FILTER_PARAMETERS;
I membri della struttura dell'unione FS_FILTER_PARAMETERS sono descritti di seguito.
AcquireForModifiedPageWriter
- EndingOffset: offset dell'ultimo byte scritto più uno.
- ResourceToRelease: risorsa da rilasciare. Questo parametro non deve avere un valore NULL .
ReleaseForModifiedPageWriter
- ResourceToRelease: risorsa da rilasciare. Questo parametro non deve avere un valore NULL .
AcquireForSectionSynchronization
SyncType: tipo di sincronizzazione richiesto per la sezione. Impostare su SyncTypeCreateSection se viene creata una sezione; SyncTypeOther in caso contrario.
PageProtection: tipo di protezione pagina richiesta per la sezione. Deve essere zero se SyncType è SyncTypeOther. In caso contrario, uno dei flag seguenti, possibilmente ORed con PAGE_NOCACHE:
- PAGE_NOACCESS
- PAGE_READONLY
- PAGE_READWRITE
- PAGE_WRITECOPY
- PAGE_EXECUTE
- PAGE_EXECUTE_READ
- PAGE_EXECUTE_READWRITE
- PAGE_EXECUTE_WRITECOPY
- PAGE_GUARD
- PAGE_NOCACHE
- PAGE_WRITECOMBINE
OutputInformation: struttura FS_FILTER_SECTION_SYNC_OUTPUT contenente le informazioni di output estese per la sezione.
Flag: quando SyncType è SyncTypeCreateSection, i flag possono essere uno dei valori seguenti:
- FS_FILTER_SECTION_SYNC_IN_FLAG_DONT_UPDATE_LAST_ACCESS (0x00000001): il file system non deve aggiornare l'ultima volta di accesso al file tramite la sezione creata.
- FS_FILTER_SECTION_SYNC_IN_FLAG_DONT_UPDATE_LAST_WRITE (0x00000002): il file system non deve aggiornare l'ultima ora di scrittura per le modifiche al file tramite la sezione che viene creata.
QueryOpen
Irp: puntatore all'IRP associato a questa operazione.
FileInformation: puntatore a un buffer allocato del chiamante in cui la routine scrive le informazioni richieste sull'oggetto file. Il membro FileInformationClass specifica il tipo di informazioni richieste dal chiamante.
Lunghezza: dimensioni, in byte, del buffer a cui fa riferimento FileInformation.
CompletionStatus: valore NTSTATUS che riceve lo stato di completamento finale e le informazioni sull'operazione. CompletamentoStatus può essere impostato dal callback PostQueryOpen per non riuscire l'operazione, poiché i callback post non hanno alcun valore restituito. Viene usato principalmente in modo che il callback PostQueryOpen possa restituire STATUS_FLT_DISALLOW_FSFILTER_IO per richiedere il fallback al percorso lento. In questo modo, la gestione I/O esegue la richiesta eseguendo una richiesta aperta/query/chiusura del file. Analogamente, il callback PreQueryOpen può restituire STATUS_FLT_DISALLOW_FSFILTER_IO per richiedere il fallback al percorso lento.
FileInformationClass: tipo di informazioni da restituire sul file nel buffer a cui punta FileInformation . I driver di dispositivo e intermedio possono specificare uno dei valori di FILE_INFORMATION_CLASS seguenti. Altri valori causano l'esito negativo della chiamata e non devono essere passati alle chiamate PreQueryOpen/PostQueryOpen.
valore FILE_INFORMATION_CLASS Tipo di informazioni restituite FileStatInformation Struttura FILE_STAT_INFORMATION . Questa struttura contiene una maschera di accesso. Per altre informazioni sulle maschere di accesso, vedere ACCESS_MASK. FileStatLxInformation Struttura FILE_STAT_LX_INFORMATION . Questa struttura contiene una maschera di accesso. Per altre informazioni sulle maschere di accesso, vedere ACCESS_MASK. FileCaseSensitiveInformation Struttura FILE_CASE_SENSITIVE_INFORMATION . Altro
- Argomento1: riservato per l'uso futuro.
- Argomento2: riservato per l'uso futuro.
- Argomento3: riservato per l'uso futuro.
- Argomento4: riservato per l'uso futuro.
- Argomento5: riservato per l'uso futuro.
Requisiti
Requisito | Valore |
---|---|
Intestazione | ntifs.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