Funzione NtDeviceIoControlFile (winternl.h)
Deprecato. Compila i descrittori per i buffer forniti e passa i dati non tipizzato al driver di dispositivo associato all'handle di file. NtDeviceIoControlFile viene sostituito da DeviceIoControl.
Sintassi
__kernel_entry NTSTATUS NtDeviceIoControlFile(
[in] HANDLE FileHandle,
[in] HANDLE Event,
[in] PIO_APC_ROUTINE ApcRoutine,
[in] PVOID ApcContext,
[out] PIO_STATUS_BLOCK IoStatusBlock,
[in] ULONG IoControlCode,
[in] PVOID InputBuffer,
[in] ULONG InputBufferLength,
[out] PVOID OutputBuffer,
[in] ULONG OutputBufferLength
);
Parametri
[in] FileHandle
Aprire l'handle file nel file o nel dispositivo in cui devono essere fornite le informazioni sul controllo.
[in] Event
Handle a un evento da impostare sullo signaled
stato al termine dell'operazione. Questo parametro può essere NULL.
[in] ApcRoutine
Procedura da richiamare al termine dell'operazione. Questo parametro può essere NULL. Per altre informazioni sulle chiamate di routine asincrone (API), vedere Chiamate di routine asincrone.
[in] ApcContext
Puntatore da passare a ApcRoutine al termine dell'operazione. Questo parametro è obbligatorio se viene specificato un ApcRoutine .
[out] IoStatusBlock
Variabile per ricevere lo stato di completamento finale e informazioni sull'operazione. Le chiamate di servizio che restituiscono informazioni restituiscono la lunghezza dei dati scritti nel buffer di output nel campo Informazioni di questa variabile.
[in] IoControlCode
Codice che indica quale funzione di controllo I/O del dispositivo deve essere eseguita.
[in] InputBuffer
Puntatore a un buffer che contiene le informazioni da fornire al dispositivo di destinazione. Questo parametro può essere NULL. Queste informazioni sono dipendenti dal dispositivo.
[in] InputBufferLength
Lunghezza dell'inputBuffer in byte. Se il buffer non viene fornito, questo valore viene ignorato.
[out] OutputBuffer
Puntatore a un buffer che deve ricevere le informazioni di restituzione dipendenti dal dispositivo dal dispositivo di destinazione. Questo parametro può essere NULL.
[in] OutputBufferLength
Lunghezza dell'outputBuffer in byte. Se il buffer non viene fornito, questo valore viene ignorato.
Valore restituito
I vari valori NTSTATUS sono definiti in NTSTATUS. H, distribuito con Windows DDK.
Codice restituito | Descrizione |
---|---|
|
L'operazione di controllo è stata accodata correttamente al sistema di I/O. Al termine dell'operazione, lo stato può essere determinato esaminando il campo Stato del blocco di stato di I/O. |
Commenti
Il servizio NtDeviceIoControlFile è un'interfaccia dipendente dal dispositivo che estende il controllo che le applicazioni hanno su vari dispositivi all'interno del sistema. Questa API offre una visualizzazione coerente dei dati di input e output nel sistema, fornendo ancora l'applicazione e il driver un metodo dipendente dal dispositivo per specificare un'interfaccia di comunicazione.
Il tipo di accesso al file necessario dal chiamante dipende dall'operazione effettiva eseguita.
Al termine del servizio, se specificato, viene impostato sullo signaled
stato. Se non viene specificato alcun parametro Event , l'oggetto file specificato da FileHandle è impostato sullo signaled
stato. Se viene specificato un oggetto ApcRoutine , viene richiamato con ApcContext e IoStatusBlock come argomenti.
Poiché non è disponibile alcuna libreria di importazione per questa funzione, è necessario usare GetProcAddress.
Requisiti
Client minimo supportato | Windows 2000 Professional [solo app desktop] |
Server minimo supportato | Windows 2000 Server [solo app desktop] |
Piattaforma di destinazione | Windows |
Intestazione | winternl.h |
Libreria | ntdll.lib |
DLL | ntdll.dll |