Condividi tramite


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
STATUS_SUCCESS
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

Vedi anche

Chiamate di routine asincrone