test: io/devctrl.c File Reference

Main Page | Class Hierarchy | Class List | File List | Class Members | File Members

# devctrl.c File Reference

`#include "iop.h"`

Go to the source code of this file.

## Functions

NTSTATUS | NtDeviceIoControlFile (IN HANDLE FileHandle, IN HANDLE Event OPTIONAL, IN PIO_APC_ROUTINE ApcRoutine OPTIONAL, IN PVOID ApcContext OPTIONAL, OUT PIO_STATUS_BLOCK IoStatusBlock, IN ULONG IoControlCode, IN PVOID InputBuffer OPTIONAL, IN ULONG InputBufferLength, OUT PVOID OutputBuffer OPTIONAL, IN ULONG OutputBufferLength)

## Function Documentation

NTSTATUS NtDeviceIoControlFile | ( | IN HANDLE | FileHandle,
|  | IN HANDLE Event | OPTIONAL,
|  | IN PIO_APC_ROUTINE ApcRoutine | OPTIONAL,
|  | IN PVOID ApcContext | OPTIONAL,
|  | OUT PIO_STATUS_BLOCK | IoStatusBlock,
|  | IN ULONG | IoControlCode,
|  | IN PVOID InputBuffer | OPTIONAL,
|  | IN ULONG | InputBufferLength,
|  | OUT PVOID OutputBuffer | OPTIONAL,
|  | IN ULONG | OutputBufferLength
| ) |

Definition at line 34 of file io/devctrl.c.

References Event(), IopXxxControlFile(), and TRUE.

Referenced by IopCacheNetbiosNameForIpAddress(), IopStartNetworkForRemoteBoot(), IopStartTcpIpForRemoteBoot(), IopTCPQueryInformationEx(), IopTCPSetInformationEx(), VdmFlushPrinterWriteData(), VdmPrinterStatus(), and Win32CommandChannelThread().

    00049                    :
    00050
    00051     This service builds descriptors or MDLs for the supplied buffer(s) and
    00052     passes the untyped data to the device driver associated with the file
    00053     handle.  It is up to the driver to check the input data and function
    00054     IoControlCode for validity, as well as to make the appropriate access
    00055     checks.
    00056
    00057 Arguments:
    00058
    00059     FileHandle - Supplies a handle to the file on which the service is being
    00060         performed.
    00061
    00062     Event - Supplies an optional event to be set to the Signaled state when
    00063         the service is complete.
    00064
    00065     ApcRoutine - Supplies an optional APC routine to be executed when the
    00066         service is complete.
    00067
    00068     ApcContext - Supplies a context parameter to be passed to the ApcRoutine,
    00069         if an ApcRoutine was specified.
    00070
    00071     IoStatusBlock - Address of the caller's I/O status block.
    00072
    00073     IoControlCode - Subfunction code to determine exactly what operation is
    00074         being performed.
    00075
    00076     InputBuffer - Optionally supplies an input buffer to be passed to the
    00077         device driver.  Whether or not the buffer is actually optional is
    00078         dependent on the IoControlCode.
    00079
    00080     InputBufferLength - Length of the InputBuffer in bytes.
    00081
    00082     OutputBuffer - Optionally supplies an output buffer to receive information
    00083         from the device driver.  Whether or not the buffer is actually optional
    00084         is dependent on the IoControlCode.
    00085
    00086     OutputBufferLength - Length of the OutputBuffer in bytes.
    00087
    00088 Return Value:
    00089
    00090     The status returned is success if the control operation was properly
    00091     queued to the I/O system.   Once the operation completes, the status
    00092     can be determined by examining the Status field of the I/O status block.
    00093
    00094 --*/
    00095
    00096 {
    00097     //
    00098     // Simply invoke the common routine that implements both device and file
    00099     // system I/O controls.
    00100     //
    00101
    00102     return IopXxxControlFile( FileHandle,
    00103                               Event,
    00104                               ApcRoutine,
    00105                               ApcContext,
    00106                               IoStatusBlock,
    00107                               IoControlCode,
    00108                               InputBuffer,
    00109                               InputBufferLength,
    00110                               OutputBuffer,
    00111                               OutputBufferLength,
    00112                               TRUE );
    00113 }
    }