Condividi tramite


Funzione FltFsControlFile (fltkernel.h)

La routine FltFsControlFile invia direttamente un codice di controllo a un file system o a un driver di filtro del file system specificato, causando l'esecuzione dell'azione specificata da parte del driver corrispondente.

Sintassi

NTSTATUS FLTAPI FltFsControlFile(
  [in]            PFLT_INSTANCE Instance,
  [in]            PFILE_OBJECT  FileObject,
  [in]            ULONG         FsControlCode,
  [in, optional]  PVOID         InputBuffer,
  [in]            ULONG         InputBufferLength,
  [out, optional] PVOID         OutputBuffer,
  [in]            ULONG         OutputBufferLength,
  [out, optional] PULONG        LengthReturned
);

Parametri

[in] Instance

Puntatore dell'istanza opaca per il chiamante. Questo parametro è obbligatorio e non può essere NULL.

[in] FileObject

Puntatore all'oggetto file per il file o la directory che rappresenta la destinazione di questa richiesta. Questo parametro è obbligatorio e non può essere NULL.

[in] FsControlCode

FSCTL_xxx codice che indica quale operazione del file system deve essere eseguita. Il valore di questo parametro determina i formati e le lunghezze necessarie del InputBuffer e OutputBuffere determina quali delle coppie di parametri seguenti (InputBuffer e InputBufferLength, OutputBuffer e OutputBufferLength).

[in, optional] InputBuffer

Puntatore a un buffer di input allocato dal chiamante che contiene informazioni specifiche del dispositivo da assegnare al driver di destinazione. Se il parametro FsControlCode specifica un'operazione che non richiede dati di input, questo parametro è facoltativo e può essere NULL.

[in] InputBufferLength

Dimensioni, in byte, del buffer in corrispondenza di InputBuffer. Questo valore viene ignorato se InputBuffer è NULL.

[out, optional] OutputBuffer

Puntatore a un buffer di output allocato dal chiamante in cui le informazioni vengono restituite dal driver di destinazione. Se il parametro FsControlCode specifica un'operazione che non richiede dati di output, questo parametro è facoltativo e può essere NULL.

[in] OutputBufferLength

Dimensioni, in byte, del buffer in corrispondenza di OutputBuffer. Questo valore viene ignorato se OutputBuffer è NULL.

[out, optional] LengthReturned

Puntatore a una variabile allocata dal chiamante che riceve le dimensioni, in byte, delle informazioni restituite nel buffer in corrispondenza di OutputBuffer. Questo parametro è facoltativo e può essere NULL.

Valore restituito

FltFsControlFile restituisce STATUS_SUCCESS o un valore NTSTATUS appropriato.

Osservazioni

I driver minifiltro devono chiamare questa routine anziché ZwFsControlFile.

I codici FSCTL seguenti sono attualmente documentati per i driver in modalità kernel:

FSCTL_DELETE_REPARSE_POINT

FSCTL_GET_REPARSE_POINT

FSCTL_OPBATCH_ACK_CLOSE_PENDING

FSCTL_OPLOCK_BREAK_ACK_NO_2

FSCTL_OPLOCK_BREAK_ACKNOWLEDGE

FSCTL_OPLOCK_BREAK_NOTIFY

FSCTL_REQUEST_BATCH_OPLOCK

FSCTL_REQUEST_FILTER_OPLOCK

FSCTL_REQUEST_OPLOCK_LEVEL_1

FSCTL_REQUEST_OPLOCK_LEVEL_2

FSCTL_SET_REPARSE_POINT

Per altre informazioni sui codiciFSCTL_ definiti dal sistema, vedere la sezione Osservazioni della voce di riferimento per DeviceIoControl nella documentazione di Microsoft Windows SDK.

Fabbisogno

Requisito Valore
piattaforma di destinazione Universale
intestazione fltkernel.h (include Fltkernel.h)
libreria FltMgr.lib
dll Fltmgr.sys
IRQL PASSIVE_LEVEL

Vedere anche

FltDeviceIoControlFile

ZwFsControlFile