Funzione FsRtlKernelFsControlFile (ntifs.h)
La funzione FsRtlKernelFsControlFile compila un FSCTL_XXX IRP esplicito, lo invia nello stack, attende in modo sincrono il completamento e restituisce il risultato. Questa funzione consente al chiamante di completare questa azione da FileObject anziché da handle.
Sintassi
NTSTATUS FsRtlKernelFsControlFile(
[in] PFILE_OBJECT FileObject,
[in] ULONG FsControlCode,
[in] PVOID InputBuffer,
[in] ULONG InputBufferLength,
[out] PVOID OutputBuffer,
[out] ULONG OutputBufferLength,
[out] PULONG RetOutputBufferSize
);
Parametri
[in] FileObject
Puntatore al FILE_OBJECT per inviare l'operazione.
[in] FsControlCode
FSCTL_XXX codice che indica l'operazione di controllo del file system da eseguire. Il valore di questo parametro determina i formati e le lunghezze necessarie di InputBuffer e OutputBuffer, nonché quali delle coppie di parametri seguenti sono necessarie. Per informazioni dettagliate sui codici di FSCTL_XXX definiti dal sistema, vedere la sezione "Osservazioni" della voce di riferimento per DeviceIoControl nella documentazione Microsoft Windows SDK.
[in] InputBuffer
Puntatore a un buffer di input allocato dal chiamante che contiene informazioni specifiche del dispositivo da assegnare al driver di destinazione. Se FsControlCode specifica un'operazione che non richiede dati di input, questo puntatore è facoltativo e può essere NULL. Si noti che questo buffer potrebbe essere modificato al momento della restituzione e il chiamante deve adattarsi a questo. Ciò è dovuto al fatto che questo buffer può essere usato per contenere i dati di output.
[in] InputBufferLength
Lunghezza di InputBuffer in byte.
[out] OutputBuffer
Puntatore a un buffer di output allocato dal chiamante in cui le informazioni vengono restituite dal driver di destinazione. Se FsControlCode specifica un'operazione che non produce dati di output, questo puntatore è facoltativo e può essere NULL.
[out] OutputBufferLength
Lunghezza di OutputBuffer in byte.
[out] RetOutputBufferSize
Riceve il numero di byte effettivamente scritti (restituiti) nel buffer di output.
Valore restituito
FsRtlKernelFsControlFile restituisce STATUS_SUCCESS o un valore NTSTATUS appropriato, ad esempio uno dei seguenti.
Valore | Significato |
---|---|
STATUS_INSUFFICIENT_RESOURCES | Si è verificato un errore di allocazione del pool. |
STATUS_INVALID_PARAMETER | È stato specificato un parametro non valido, ad esempio un FileObject non valido. |
Commenti
FsRtlKernelFsControlFile imposta il codice IRP_MN_KERNEL_CALL secondario che consente di eseguire operazioni senza richiedere la gestione dei privilegi di volume per determinate operazioni.
Questa funzione presuppone che tutti i buffer passati siano buffer in modalità kernel.
Requisiti
Requisito | Valore |
---|---|
Intestazione | ntifs.h |