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


Generated on Sat May 15 19:43:26 2004 for test by doxygen 1.3.7