Freigeben über


NtDeviceIoControlFile-Funktion (winternl.h)

Veraltet. Erstellt Deskriptoren für die bereitgestellten Puffer und übergibt die nicht typisierten Daten an den Gerätetreiber, der dem Dateihandle zugeordnet ist. NtDeviceIoControlFile wird von DeviceIoControl ersetzt.

Syntax

__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
);

Parameter

[in] FileHandle

Öffnen Sie das Dateihandle für die Datei oder das Gerät, dem die Steuerelementinformationen übergeben werden sollen.

[in] Event

Ein Handle für ein Ereignis, das nach Abschluss des Vorgangs auf den signaled Zustand festgelegt werden soll. Dieser Parameter kann NULL sein.

[in] ApcRoutine

Prozedur, die nach Abschluss des Vorgangs aufgerufen werden soll. Dieser Parameter kann NULL sein. Weitere Informationen zu asynchronen Prozeduraufrufen (Asynchrone Prozeduraufrufe, APCs) finden Sie unter Asynchrone Prozeduraufrufe.

[in] ApcContext

Ein Zeiger, der nach Abschluss des Vorgangs an ApcRoutine übergeben werden soll. Dieser Parameter ist erforderlich, wenn eine ApcRoutine angegeben wird.

[out] IoStatusBlock

Variable, um die endgültige Vervollständigung status und Informationen zum Vorgang zu erhalten. Dienstaufrufe, die Informationen zurückgeben, geben die Länge der Daten zurück, die in den Ausgabepuffer im Feld Information dieser Variablen geschrieben werden.

[in] IoControlCode

Code, der angibt, welche Geräte-E/A-Steuerungsfunktion ausgeführt werden soll.

[in] InputBuffer

Ein Zeiger auf einen Puffer, der die Informationen enthält, die dem Zielgerät zugewiesen werden sollen. Dieser Parameter kann NULL sein. Diese Informationen sind geräteabhängig.

[in] InputBufferLength

Länge des InputBuffers in Bytes. Wenn der Puffer nicht angegeben wird, wird dieser Wert ignoriert.

[out] OutputBuffer

Ein Zeiger auf einen Puffer, der die geräteabhängigen Rückgabeinformationen vom Zielgerät empfangen soll. Dieser Parameter kann NULL sein.

[in] OutputBufferLength

Länge des OutputBuffers in Bytes. Wenn der Puffer nicht angegeben wird, wird dieser Wert ignoriert.

Rückgabewert

Die verschiedenen NTSTATUS-Werte werden in NTSTATUS definiert. H, das mit dem Windows DDK verteilt wird.

Rückgabecode Beschreibung
STATUS_SUCCESS
Der Steuerungsvorgang wurde ordnungsgemäß im E/A-System in die Warteschlange gestellt. Nach Abschluss des Vorgangs kann die status bestimmt werden, indem Sie das Feld Status des E/A-status-Blocks untersuchen.

Hinweise

Der NtDeviceIoControlFile-Dienst ist eine geräteabhängige Schnittstelle, die das Steuerelement von Anwendungen über verschiedene Geräte im System erweitert. Diese API bietet eine konsistente Ansicht der Eingabe- und Ausgabedaten für das System, während gleichzeitig der Anwendung und dem Treiber eine geräteabhängige Methode zum Angeben einer Kommunikationsschnittstelle bereitgestellt wird.

Die Art des Zugriffs auf die Datei, die der Aufrufer benötigt, hängt vom tatsächlich ausgeführten Vorgang ab.

Sobald der Dienst abgeschlossen ist, wird das Ereignis, sofern angegeben, auf den signaled Status festgelegt. Wenn kein Event-Parameter angegeben wird, wird das vom FileHandle angegebene Dateiobjekt auf den signaled Status festgelegt. Wenn eine ApcRoutine angegeben wird, wird sie mit den Argumenten ApcContext und IoStatusBlock aufgerufen.

Da es keine Importbibliothek für diese Funktion gibt, müssen Sie GetProcAddress verwenden.

Anforderungen

   
Unterstützte Mindestversion (Client) Windows 2000 Professional [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows 2000 Server [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile winternl.h
Bibliothek ntdll.lib
DLL ntdll.dll

Weitere Informationen

Asynchrone Prozeduraufrufe