ReactOS  0.4.15-dev-3295-gaa8fc87
iofuncs.h File Reference
#include <umtypes.h>
#include <iotypes.h>
Include dependency graph for iofuncs.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Functions

VOID FASTCALL IoAssignDriveLetters (_In_ struct _LOADER_PARAMETER_BLOCK *LoaderBlock, _In_ PSTRING NtDeviceName, _Out_ PUCHAR NtSystemPath, _Out_ PSTRING NtSystemPathString)
 
NTSTATUS NTAPI IoSynchronousInvalidateDeviceRelations (_In_ PDEVICE_OBJECT DeviceObject, _In_ DEVICE_RELATION_TYPE Type)
 
NTSTATUS NTAPI IoCreateDriver (_In_opt_ PUNICODE_STRING DriverName, _In_ PDRIVER_INITIALIZE InitializationFunction)
 
NTSTATUS NTAPI IoReportHalResourceUsage (_In_ PUNICODE_STRING HalName, _In_ PCM_RESOURCE_LIST RawResourceList, _In_ PCM_RESOURCE_LIST TranslatedResourceList, _In_ ULONG ResourceListSize)
 
NTSYSCALLAPI NTSTATUS NTAPI NtAddBootEntry (_In_ PBOOT_ENTRY BootEntry, _In_ ULONG Id)
 
NTSYSCALLAPI NTSTATUS NTAPI NtAddDriverEntry (_In_ PEFI_DRIVER_ENTRY BootEntry, _In_ ULONG Id)
 
NTSYSCALLAPI NTSTATUS NTAPI NtCancelIoFile (_In_ HANDLE FileHandle, _Out_ PIO_STATUS_BLOCK IoStatusBlock)
 
__kernel_entry NTSYSCALLAPI NTSTATUS NTAPI NtCreateFile (_Out_ PHANDLE FileHandle, _In_ ACCESS_MASK DesiredAccess, _In_ POBJECT_ATTRIBUTES ObjectAttributes, _Out_ PIO_STATUS_BLOCK IoStatusBlock, _In_opt_ PLARGE_INTEGER AllocationSize, _In_ ULONG FileAttributes, _In_ ULONG ShareAccess, _In_ ULONG CreateDisposition, _In_ ULONG CreateOptions, _In_reads_bytes_opt_(EaLength) PVOID EaBuffer, _In_ ULONG EaLength)
 
NTSYSCALLAPI NTSTATUS NTAPI NtCreateIoCompletion (_Out_ PHANDLE IoCompletionHandle, _In_ ACCESS_MASK DesiredAccess, _In_opt_ POBJECT_ATTRIBUTES ObjectAttributes, _In_ ULONG NumberOfConcurrentThreads)
 
NTSYSCALLAPI NTSTATUS NTAPI NtCreateMailslotFile (_Out_ PHANDLE MailSlotFileHandle, _In_ ACCESS_MASK DesiredAccess, _In_ POBJECT_ATTRIBUTES ObjectAttributes, _Out_ PIO_STATUS_BLOCK IoStatusBlock, _In_ ULONG FileAttributes, _In_ ULONG ShareAccess, _In_ ULONG MaxMessageSize, _In_ PLARGE_INTEGER TimeOut)
 
NTSYSCALLAPI NTSTATUS NTAPI NtCreateNamedPipeFile (_Out_ PHANDLE NamedPipeFileHandle, _In_ ACCESS_MASK DesiredAccess, _In_ POBJECT_ATTRIBUTES ObjectAttributes, _Out_ PIO_STATUS_BLOCK IoStatusBlock, _In_ ULONG ShareAccess, _In_ ULONG CreateDisposition, _In_ ULONG CreateOptions, _In_ ULONG WriteModeMessage, _In_ ULONG ReadModeMessage, _In_ ULONG NonBlocking, _In_ ULONG MaxInstances, _In_ ULONG InBufferSize, _In_ ULONG OutBufferSize, _In_ PLARGE_INTEGER DefaultTimeOut)
 
NTSYSCALLAPI NTSTATUS NTAPI NtDeleteDriverEntry (_In_ ULONG Id)
 
NTSYSCALLAPI NTSTATUS NTAPI NtDeleteBootEntry (_In_ ULONG Id)
 
NTSYSCALLAPI NTSTATUS NTAPI NtDeleteFile (_In_ POBJECT_ATTRIBUTES ObjectAttributes)
 
__kernel_entry NTSYSCALLAPI NTSTATUS NTAPI NtDeviceIoControlFile (_In_ HANDLE FileHandle, _In_opt_ HANDLE Event, _In_opt_ PIO_APC_ROUTINE ApcRoutine, _In_opt_ PVOID ApcContext, _Out_ PIO_STATUS_BLOCK IoStatusBlock, _In_ ULONG IoControlCode, _In_reads_bytes_opt_(InputBufferLength) PVOID InputBuffer, _In_ ULONG InputBufferLength, _Out_writes_bytes_opt_(OutputBufferLength) PVOID OutputBuffer, _In_ ULONG OutputBufferLength)
 
NTSYSCALLAPI NTSTATUS NTAPI NtEnumerateBootEntries (_In_ PVOID Buffer, _In_ PULONG BufferLength)
 
NTSYSCALLAPI NTSTATUS NTAPI NtEnumerateDriverEntries (_In_ PVOID Buffer, _In_ PULONG BufferLength)
 
NTSYSCALLAPI NTSTATUS NTAPI NtFlushBuffersFile (_In_ HANDLE FileHandle, _Out_ PIO_STATUS_BLOCK IoStatusBlock)
 
NTSYSCALLAPI NTSTATUS NTAPI NtFlushWriteBuffer (VOID)
 
__kernel_entry NTSYSCALLAPI NTSTATUS NTAPI NtFsControlFile (_In_ HANDLE FileHandle, _In_opt_ HANDLE Event, _In_opt_ PIO_APC_ROUTINE ApcRoutine, _In_opt_ PVOID ApcContext, _Out_ PIO_STATUS_BLOCK IoStatusBlock, _In_ ULONG FsControlCode, _In_reads_bytes_opt_(InputBufferLength) PVOID InputBuffer, _In_ ULONG InputBufferLength, _Out_writes_bytes_opt_(OutputBufferLength) PVOID OutputBuffer, _In_ ULONG OutputBufferLength)
 
NTSYSCALLAPI NTSTATUS NTAPI NtLoadDriver (_In_ PUNICODE_STRING DriverServiceName)
 
NTSYSCALLAPI NTSTATUS NTAPI NtLockFile (_In_ HANDLE FileHandle, _In_opt_ HANDLE Event, _In_opt_ PIO_APC_ROUTINE ApcRoutine, _In_opt_ PVOID ApcContext, _Out_ PIO_STATUS_BLOCK IoStatusBlock, _In_ PLARGE_INTEGER ByteOffset, _In_ PLARGE_INTEGER Length, _In_ ULONG Key, _In_ BOOLEAN FailImmediatedly, _In_ BOOLEAN ExclusiveLock)
 
NTSYSCALLAPI NTSTATUS NTAPI NtModifyBootEntry (_In_ PBOOT_ENTRY BootEntry)
 
NTSYSCALLAPI NTSTATUS NTAPI NtModifyDriverEntry (_In_ PEFI_DRIVER_ENTRY DriverEntry)
 
NTSYSCALLAPI NTSTATUS NTAPI NtNotifyChangeDirectoryFile (_In_ HANDLE FileHandle, _In_opt_ HANDLE Event, _In_opt_ PIO_APC_ROUTINE ApcRoutine, _In_opt_ PVOID ApcContext, _Out_ PIO_STATUS_BLOCK IoStatusBlock, _Out_ PVOID Buffer, _In_ ULONG BufferSize, _In_ ULONG CompletionFilter, _In_ BOOLEAN WatchTree)
 
NTSYSCALLAPI NTSTATUS NTAPI NtOpenFile (_Out_ PHANDLE FileHandle, _In_ ACCESS_MASK DesiredAccess, _In_ POBJECT_ATTRIBUTES ObjectAttributes, _Out_ PIO_STATUS_BLOCK IoStatusBlock, _In_ ULONG ShareAccess, _In_ ULONG OpenOptions)
 
NTSYSCALLAPI NTSTATUS NTAPI NtOpenIoCompletion (_Out_ PHANDLE CompetionPort, _In_ ACCESS_MASK DesiredAccess, _In_ POBJECT_ATTRIBUTES ObjectAttributes)
 
NTSYSCALLAPI NTSTATUS NTAPI NtQueryAttributesFile (_In_ POBJECT_ATTRIBUTES ObjectAttributes, _Out_ PFILE_BASIC_INFORMATION FileInformation)
 
NTSTATUS NTAPI NtQueryDriverEntryOrder (_In_ PULONG Ids, _In_ PULONG Count)
 
NTSYSCALLAPI NTSTATUS NTAPI NtQueryBootEntryOrder (_In_ PULONG Ids, _In_ PULONG Count)
 
NTSYSCALLAPI NTSTATUS NTAPI NtQueryBootOptions (_In_ PBOOT_OPTIONS BootOptions, _In_ PULONG BootOptionsLength)
 
__kernel_entry NTSYSCALLAPI NTSTATUS NTAPI NtQueryDirectoryFile (_In_ HANDLE FileHandle, _In_opt_ HANDLE Event, _In_opt_ PIO_APC_ROUTINE ApcRoutine, _In_opt_ PVOID ApcContext, _Out_ PIO_STATUS_BLOCK IoStatusBlock, _Out_writes_bytes_(Length) PVOID FileInformation, _In_ ULONG Length, _In_ FILE_INFORMATION_CLASS FileInformationClass, _In_ BOOLEAN ReturnSingleEntry, _In_opt_ PUNICODE_STRING FileName, _In_ BOOLEAN RestartScan)
 
NTSYSCALLAPI NTSTATUS NTAPI NtQueryEaFile (_In_ HANDLE FileHandle, _Out_ PIO_STATUS_BLOCK IoStatusBlock, _Out_ PVOID Buffer, _In_ ULONG Length, _In_ BOOLEAN ReturnSingleEntry, _In_opt_ PVOID EaList, _In_ ULONG EaListLength, _In_opt_ PULONG EaIndex, _In_ BOOLEAN RestartScan)
 
NTSYSCALLAPI NTSTATUS NTAPI NtQueryFullAttributesFile (_In_ POBJECT_ATTRIBUTES ObjectAttributes, _Out_ PFILE_NETWORK_OPEN_INFORMATION FileInformation)
 
__kernel_entry NTSYSCALLAPI NTSTATUS NTAPI NtQueryInformationFile (_In_ HANDLE FileHandle, _Out_ PIO_STATUS_BLOCK IoStatusBlock, _Out_writes_bytes_(Length) PVOID FileInformation, _In_ ULONG Length, _In_ FILE_INFORMATION_CLASS FileInformationClass)
 
NTSYSCALLAPI NTSTATUS NTAPI NtQueryIoCompletion (_In_ HANDLE IoCompletionHandle, _In_ IO_COMPLETION_INFORMATION_CLASS IoCompletionInformationClass, _Out_ PVOID IoCompletionInformation, _In_ ULONG IoCompletionInformationLength, _Out_opt_ PULONG ResultLength)
 
__kernel_entry NTSYSCALLAPI NTSTATUS NTAPI NtQueryQuotaInformationFile (_In_ HANDLE FileHandle, _Out_ PIO_STATUS_BLOCK IoStatusBlock, _Out_writes_bytes_(Length) PVOID Buffer, _In_ ULONG Length, _In_ BOOLEAN ReturnSingleEntry, _In_reads_bytes_opt_(SidListLength) PVOID SidList, _In_ ULONG SidListLength, _In_reads_bytes_opt_((8+(4 *((SID *) StartSid) ->SubAuthorityCount))) PSID StartSid, _In_ BOOLEAN RestartScan)
 
__kernel_entry NTSYSCALLAPI NTSTATUS NTAPI NtQueryVolumeInformationFile (_In_ HANDLE FileHandle, _Out_ PIO_STATUS_BLOCK IoStatusBlock, _Out_writes_bytes_(Length) PVOID FsInformation, _In_ ULONG Length, _In_ FS_INFORMATION_CLASS FsInformationClass)
 
__kernel_entry NTSYSCALLAPI NTSTATUS NTAPI NtReadFile (_In_ HANDLE FileHandle, _In_opt_ HANDLE Event, _In_opt_ PIO_APC_ROUTINE ApcRoutine, _In_opt_ PVOID ApcContext, _Out_ PIO_STATUS_BLOCK IoStatusBlock, _Out_writes_bytes_(Length) PVOID Buffer, _In_ ULONG Length, _In_opt_ PLARGE_INTEGER ByteOffset, _In_opt_ PULONG Key)
 
NTSYSCALLAPI NTSTATUS NTAPI NtReadFileScatter (_In_ HANDLE FileHandle, _In_opt_ HANDLE Event, _In_opt_ PIO_APC_ROUTINE UserApcRoutine, _In_opt_ PVOID UserApcContext, _Out_ PIO_STATUS_BLOCK UserIoStatusBlock, _In_ FILE_SEGMENT_ELEMENT BufferDescription[], _In_ ULONG BufferLength, _In_ PLARGE_INTEGER ByteOffset, _In_opt_ PULONG Key)
 
NTSYSCALLAPI NTSTATUS NTAPI NtRemoveIoCompletion (_In_ HANDLE IoCompletionHandle, _Out_ PVOID *CompletionKey, _Out_ PVOID *CompletionContext, _Out_ PIO_STATUS_BLOCK IoStatusBlock, _In_opt_ PLARGE_INTEGER Timeout)
 
NTSYSCALLAPI NTSTATUS NTAPI NtSetBootEntryOrder (_In_ PULONG Ids, _In_ PULONG Count)
 
NTSYSCALLAPI NTSTATUS NTAPI NtSetBootOptions (_In_ PBOOT_OPTIONS BootOptions, _In_ ULONG FieldsToChange)
 
NTSTATUS NTAPI NtSetDriverEntryOrder (_In_ PULONG Ids, _In_ PULONG Count)
 
NTSYSCALLAPI NTSTATUS NTAPI NtSetEaFile (_In_ HANDLE FileHandle, _In_ PIO_STATUS_BLOCK IoStatusBlock, PVOID EaBuffer, ULONG EaBufferSize)
 
__kernel_entry NTSYSCALLAPI NTSTATUS NTAPI NtSetInformationFile (_In_ HANDLE FileHandle, _Out_ PIO_STATUS_BLOCK IoStatusBlock, _In_reads_bytes_(Length) PVOID FileInformation, _In_ ULONG Length, _In_ FILE_INFORMATION_CLASS FileInformationClass)
 
NTSYSCALLAPI NTSTATUS NTAPI NtSetIoCompletion (_In_ HANDLE IoCompletionPortHandle, _In_ PVOID CompletionKey, _In_ PVOID CompletionContext, _In_ NTSTATUS CompletionStatus, _In_ ULONG CompletionInformation)
 
NTSYSCALLAPI NTSTATUS NTAPI NtSetQuotaInformationFile (HANDLE FileHandle, PIO_STATUS_BLOCK IoStatusBlock, PVOID Buffer, ULONG BufferLength)
 
__kernel_entry NTSYSCALLAPI NTSTATUS NTAPI NtSetVolumeInformationFile (_In_ HANDLE FileHandle, _Out_ PIO_STATUS_BLOCK IoStatusBlock, _In_reads_bytes_(Length) PVOID FsInformation, _In_ ULONG Length, _In_ FS_INFORMATION_CLASS FsInformationClass)
 
NTSYSCALLAPI NTSTATUS NTAPI NtTranslateFilePath (PFILE_PATH InputFilePath, ULONG OutputType, PFILE_PATH OutputFilePath, ULONG OutputFilePathLength)
 
NTSYSCALLAPI NTSTATUS NTAPI NtUnloadDriver (_In_ PUNICODE_STRING DriverServiceName)
 
__kernel_entry NTSYSCALLAPI NTSTATUS NTAPI NtUnlockFile (_In_ HANDLE FileHandle, _Out_ PIO_STATUS_BLOCK IoStatusBlock, _In_ PLARGE_INTEGER ByteOffset, _In_ PLARGE_INTEGER Length, _In_ ULONG Key)
 
__kernel_entry NTSYSCALLAPI NTSTATUS NTAPI NtWriteFile (_In_ HANDLE FileHandle, _In_opt_ HANDLE Event, _In_opt_ PIO_APC_ROUTINE ApcRoutine, _In_opt_ PVOID ApcContext, _Out_ PIO_STATUS_BLOCK IoStatusBlock, _In_reads_bytes_(Length) PVOID Buffer, _In_ ULONG Length, _In_opt_ PLARGE_INTEGER ByteOffset, _In_opt_ PULONG Key)
 
NTSYSCALLAPI NTSTATUS NTAPI NtWriteFileGather (_In_ HANDLE FileHandle, _In_opt_ HANDLE Event, _In_opt_ PIO_APC_ROUTINE ApcRoutine, _In_opt_ PVOID ApcContext, _Out_ PIO_STATUS_BLOCK IoStatusBlock, _In_ FILE_SEGMENT_ELEMENT BufferDescription[], _In_ ULONG BufferLength, _In_ PLARGE_INTEGER ByteOffset, _In_opt_ PULONG Key)
 
NTSYSAPI NTSTATUS NTAPI ZwAddBootEntry (_In_ PUNICODE_STRING EntryName, _In_ PUNICODE_STRING EntryValue)
 
NTSYSAPI NTSTATUS NTAPI ZwCancelIoFile (_In_ HANDLE FileHandle, _Out_ PIO_STATUS_BLOCK IoStatusBlock)
 
 _IRQL_requires_max_ (PASSIVE_LEVEL) NTSYSAPI NTSTATUS NTAPI ZwCreateFile(_Out_ PHANDLE FileHandle
 Queries information details about a security descriptor. More...
 
_In_ ACCESS_MASK _In_ POBJECT_ATTRIBUTES _Out_ PIO_STATUS_BLOCK _In_opt_ PLARGE_INTEGER _In_ ULONG _In_ ULONG _In_ ULONG _In_ ULONG _In_reads_bytes_opt_ (EaLength) PVOID EaBuffer
 
NTSYSAPI NTSTATUS NTAPI ZwCreateIoCompletion (_Out_ PHANDLE IoCompletionHandle, _In_ ACCESS_MASK DesiredAccess, _In_opt_ POBJECT_ATTRIBUTES ObjectAttributes, _In_ ULONG NumberOfConcurrentThreads)
 
NTSYSAPI NTSTATUS NTAPI ZwCreateMailslotFile (_Out_ PHANDLE MailSlotFileHandle, _In_ ACCESS_MASK DesiredAccess, _In_ POBJECT_ATTRIBUTES ObjectAttributes, _Out_ PIO_STATUS_BLOCK IoStatusBlock, _In_ ULONG FileAttributes, _In_ ULONG ShareAccess, _In_ ULONG MaxMessageSize, _In_ PLARGE_INTEGER TimeOut)
 
NTSYSAPI NTSTATUS NTAPI ZwCreateNamedPipeFile (_Out_ PHANDLE NamedPipeFileHandle, _In_ ACCESS_MASK DesiredAccess, _In_ POBJECT_ATTRIBUTES ObjectAttributes, _Out_ PIO_STATUS_BLOCK IoStatusBlock, _In_ ULONG ShareAccess, _In_ ULONG CreateDisposition, _In_ ULONG CreateOptions, _In_ ULONG WriteModeMessage, _In_ ULONG ReadModeMessage, _In_ ULONG NonBlocking, _In_ ULONG MaxInstances, _In_ ULONG InBufferSize, _In_ ULONG OutBufferSize, _In_ PLARGE_INTEGER DefaultTimeOut)
 
NTSYSAPI NTSTATUS NTAPI ZwDeleteBootEntry (_In_ PUNICODE_STRING EntryName, _In_ PUNICODE_STRING EntryValue)
 
NTSYSAPI NTSTATUS NTAPI ZwDeleteFile (_In_ POBJECT_ATTRIBUTES ObjectAttributes)
 
_In_opt_ HANDLE _In_opt_ PIO_APC_ROUTINE _In_opt_ PVOID _Out_ PIO_STATUS_BLOCK _In_ ULONG _In_reads_bytes_opt_ (InputBufferLength) PVOID InputBuffer
 
_In_opt_ HANDLE _In_opt_ PIO_APC_ROUTINE _In_opt_ PVOID _Out_ PIO_STATUS_BLOCK _In_ ULONG _In_ ULONG _Out_writes_bytes_opt_ (OutputBufferLength) PVOID OutputBuffer
 
NTSYSAPI NTSTATUS NTAPI ZwFlushWriteBuffer (VOID)
 
NTSYSAPI NTSTATUS NTAPI ZwLockFile (_In_ HANDLE FileHandle, _In_opt_ HANDLE Event, _In_opt_ PIO_APC_ROUTINE ApcRoutine, _In_opt_ PVOID ApcContext, _Out_ PIO_STATUS_BLOCK IoStatusBlock, _In_ PLARGE_INTEGER ByteOffset, _In_ PLARGE_INTEGER Length, _In_ ULONG Key, _In_ BOOLEAN FailImmediatedly, _In_ BOOLEAN ExclusiveLock)
 
NTSYSAPI NTSTATUS NTAPI ZwNotifyChangeDirectoryFile (_In_ HANDLE FileHandle, _In_opt_ HANDLE Event, _In_opt_ PIO_APC_ROUTINE ApcRoutine, _In_opt_ PVOID ApcContext, _Out_ PIO_STATUS_BLOCK IoStatusBlock, _Out_ PVOID Buffer, _In_ ULONG BufferSize, _In_ ULONG CompletionFilter, _In_ BOOLEAN WatchTree)
 
NTSYSAPI NTSTATUS NTAPI ZwOpenFile (_Out_ PHANDLE FileHandle, _In_ ACCESS_MASK DesiredAccess, _In_ POBJECT_ATTRIBUTES ObjectAttributes, _Out_ PIO_STATUS_BLOCK IoStatusBlock, _In_ ULONG ShareAccess, _In_ ULONG OpenOptions)
 
NTSYSAPI NTSTATUS NTAPI ZwOpenIoCompletion (_Out_ PHANDLE CompetionPort, _In_ ACCESS_MASK DesiredAccess, _In_ POBJECT_ATTRIBUTES ObjectAttributes)
 
NTSYSAPI NTSTATUS NTAPI ZwQueryAttributesFile (_In_ POBJECT_ATTRIBUTES ObjectAttributes, _Out_ PFILE_BASIC_INFORMATION FileInformation)
 
_In_opt_ HANDLE _In_opt_ PIO_APC_ROUTINE _In_opt_ PVOID _Out_ PIO_STATUS_BLOCK _Out_writes_bytes_ (Length) PVOID FileInformation
 
NTSYSAPI NTSTATUS NTAPI ZwQueryFullAttributesFile (_In_ POBJECT_ATTRIBUTES ObjectAttributes, _Out_ PFILE_NETWORK_OPEN_INFORMATION FileInformation)
 
NTSYSAPI NTSTATUS NTAPI ZwQueryIoCompletion (_In_ HANDLE IoCompletionHandle, _In_ IO_COMPLETION_INFORMATION_CLASS IoCompletionInformationClass, _Out_ PVOID IoCompletionInformation, _In_ ULONG IoCompletionInformationLength, _Out_opt_ PULONG ResultLength)
 
NTSYSAPI NTSTATUS NTAPI ZwQueryQuotaInformationFile (_In_ HANDLE FileHandle, _Out_ PIO_STATUS_BLOCK IoStatusBlock, _Out_ PVOID Buffer, _In_ ULONG Length, _In_ BOOLEAN ReturnSingleEntry, _In_opt_ PVOID SidList, _In_ ULONG SidListLength, _In_opt_ PSID StartSid, _In_ BOOLEAN RestartScan)
 
NTSYSAPI NTSTATUS NTAPI ZwReadFileScatter (_In_ HANDLE FileHandle, _In_opt_ HANDLE Event, _In_opt_ PIO_APC_ROUTINE UserApcRoutine, _In_opt_ PVOID UserApcContext, _Out_ PIO_STATUS_BLOCK UserIoStatusBlock, _In_ FILE_SEGMENT_ELEMENT BufferDescription[], _In_ ULONG BufferLength, _In_ PLARGE_INTEGER ByteOffset, _In_opt_ PULONG Key)
 
NTSYSAPI NTSTATUS NTAPI ZwRemoveIoCompletion (_In_ HANDLE IoCompletionHandle, _Out_ PVOID *CompletionKey, _Out_ PVOID *CompletionContext, _Out_ PIO_STATUS_BLOCK IoStatusBlock, _In_opt_ PLARGE_INTEGER Timeout)
 
_Out_ PIO_STATUS_BLOCK _In_reads_bytes_ (Length) PVOID FileInformation
 
NTSYSAPI NTSTATUS NTAPI ZwSetIoCompletion (_In_ HANDLE IoCompletionPortHandle, _In_ PVOID CompletionKey, _In_ PVOID CompletionContext, _In_ NTSTATUS CompletionStatus, _In_ ULONG CompletionInformation)
 
NTSYSAPI NTSTATUS NTAPI ZwSetQuotaInformationFile (_In_ HANDLE FileHandle, _Out_ PIO_STATUS_BLOCK IoStatusBlock, _In_ PVOID Buffer, _In_ ULONG BufferLength)
 
NTSYSAPI NTSTATUS NTAPI ZwUnloadDriver (_In_ PUNICODE_STRING DriverServiceName)
 
NTSYSAPI NTSTATUS NTAPI ZwUnlockFile (_In_ HANDLE FileHandle, _Out_ PIO_STATUS_BLOCK IoStatusBlock, _In_ PLARGE_INTEGER ByteOffset, _In_ PLARGE_INTEGER Length, _In_opt_ ULONG Key)
 
NTSYSAPI NTSTATUS NTAPI ZwWriteFileGather (_In_ HANDLE FileHandle, _In_opt_ HANDLE Event, _In_opt_ PIO_APC_ROUTINE ApcRoutine, _In_opt_ PVOID ApcContext, _Out_ PIO_STATUS_BLOCK IoStatusBlock, _In_ FILE_SEGMENT_ELEMENT BufferDescription[], _In_ ULONG BufferLength, _In_ PLARGE_INTEGER ByteOffset, _In_opt_ PULONG Key)
 

Variables

_In_ ACCESS_MASK DesiredAccess
 
_In_ ACCESS_MASK _In_ POBJECT_ATTRIBUTES ObjectAttributes
 
_In_ ACCESS_MASK _In_ POBJECT_ATTRIBUTES _Out_ PIO_STATUS_BLOCK IoStatusBlock
 
_In_ ACCESS_MASK _In_ POBJECT_ATTRIBUTES _Out_ PIO_STATUS_BLOCK _In_opt_ PLARGE_INTEGER AllocationSize
 
_In_ ACCESS_MASK _In_ POBJECT_ATTRIBUTES _Out_ PIO_STATUS_BLOCK _In_opt_ PLARGE_INTEGER _In_ ULONG FileAttributes
 
_In_ ACCESS_MASK _In_ POBJECT_ATTRIBUTES _Out_ PIO_STATUS_BLOCK _In_opt_ PLARGE_INTEGER _In_ ULONG _In_ ULONG ShareAccess
 
_In_ ACCESS_MASK _In_ POBJECT_ATTRIBUTES _Out_ PIO_STATUS_BLOCK _In_opt_ PLARGE_INTEGER _In_ ULONG _In_ ULONG _In_ ULONG CreateDisposition
 
_In_ ACCESS_MASK _In_ POBJECT_ATTRIBUTES _Out_ PIO_STATUS_BLOCK _In_opt_ PLARGE_INTEGER _In_ ULONG _In_ ULONG _In_ ULONG _In_ ULONG CreateOptions
 
_In_ ACCESS_MASK _In_ POBJECT_ATTRIBUTES _Out_ PIO_STATUS_BLOCK _In_opt_ PLARGE_INTEGER _In_ ULONG _In_ ULONG _In_ ULONG _In_ ULONG _In_ ULONG EaLength
 
_In_opt_ HANDLE Event
 
_In_opt_ HANDLE _In_opt_ PIO_APC_ROUTINE ApcRoutine
 
_In_opt_ HANDLE _In_opt_ PIO_APC_ROUTINE _In_opt_ PVOID ApcContext
 
_In_opt_ HANDLE _In_opt_ PIO_APC_ROUTINE _In_opt_ PVOID _Out_ PIO_STATUS_BLOCK _In_ ULONG IoControlCode
 
_In_opt_ HANDLE _In_opt_ PIO_APC_ROUTINE _In_opt_ PVOID _Out_ PIO_STATUS_BLOCK _In_ ULONG _In_ ULONG InputBufferLength
 
_In_opt_ HANDLE _In_opt_ PIO_APC_ROUTINE _In_opt_ PVOID _Out_ PIO_STATUS_BLOCK _In_ ULONG _In_ ULONG _In_ ULONG OutputBufferLength
 
_In_opt_ HANDLE _In_opt_ PIO_APC_ROUTINE _In_opt_ PVOID _Out_ PIO_STATUS_BLOCK _In_ ULONG FsControlCode
 
_In_opt_ HANDLE _In_opt_ PIO_APC_ROUTINE _In_opt_ PVOID _Out_ PIO_STATUS_BLOCK _In_ ULONG Length
 
_In_opt_ HANDLE _In_opt_ PIO_APC_ROUTINE _In_opt_ PVOID _Out_ PIO_STATUS_BLOCK _In_ ULONG _In_ FILE_INFORMATION_CLASS FileInformationClass
 
_In_opt_ HANDLE _In_opt_ PIO_APC_ROUTINE _In_opt_ PVOID _Out_ PIO_STATUS_BLOCK _In_ ULONG _In_ FILE_INFORMATION_CLASS _In_ BOOLEAN ReturnSingleEntry
 
_In_opt_ HANDLE _In_opt_ PIO_APC_ROUTINE _In_opt_ PVOID _Out_ PIO_STATUS_BLOCK _In_ ULONG _In_ FILE_INFORMATION_CLASS _In_ BOOLEAN _In_opt_ PUNICODE_STRING FileName
 
_In_opt_ HANDLE _In_opt_ PIO_APC_ROUTINE _In_opt_ PVOID _Out_ PIO_STATUS_BLOCK _In_ ULONG _In_ FILE_INFORMATION_CLASS _In_ BOOLEAN _In_opt_ PUNICODE_STRING _In_ BOOLEAN RestartScan
 
_Out_ PIO_STATUS_BLOCK _In_ ULONG _In_ FS_INFORMATION_CLASS FsInformationClass
 
_In_opt_ HANDLE _In_opt_ PIO_APC_ROUTINE _In_opt_ PVOID _Out_ PIO_STATUS_BLOCK _In_ ULONG _In_opt_ PLARGE_INTEGER ByteOffset
 
_In_opt_ HANDLE _In_opt_ PIO_APC_ROUTINE _In_opt_ PVOID _Out_ PIO_STATUS_BLOCK _In_ ULONG _In_opt_ PLARGE_INTEGER _In_opt_ PULONG Key
 

Function Documentation

◆ _In_reads_bytes_()

_Out_ PIO_STATUS_BLOCK _In_reads_bytes_ ( Length  )

◆ _In_reads_bytes_opt_() [1/2]

◆ _In_reads_bytes_opt_() [2/2]

◆ _IRQL_requires_max_()

_IRQL_requires_max_ ( PASSIVE_LEVEL  )

Queries information details about a security descriptor.

Computes the quota size of a security descriptor.

Assigns a security descriptor for a new object.

An extended function that assigns a security descriptor for a new object.

Frees a security descriptor.

An extended function that sets new information data to a security descriptor.

Modifies some information data about a security descriptor.

Parameters
[in]SecurityInformationSecurity information details to be queried from a security descriptor.
[out]SecurityDescriptorThe returned security descriptor with security information data.
[in,out]LengthThe returned length of a security descriptor.
[in,out]ObjectsSecurityDescriptorThe returned object security descriptor.
Returns
Returns STATUS_SUCCESS if the operations have been completed successfully and that the specific information about the security descriptor has been queried. STATUS_BUFFER_TOO_SMALL is returned if the buffer size is too small to contain the queried info about the security descriptor.
Parameters
[in]ObjectIf specified, the function will use this arbitrary object that points to an object security descriptor.
[in]SecurityInformationSecurity information details to be set.
[in]SecurityDescriptorA security descriptor where its info is to be changed.
[in,out]ObjectsSecurityDescriptorThe returned pointer to security descriptor objects.
[in]PoolTypePool type for the new security descriptor to allocate.
[in]GenericMappingThe generic mapping of access rights masks.
Returns
See SeSetSecurityDescriptorInfoEx.
Parameters
[in]ObjectIf specified, the function will use this arbitrary object that points to an object security descriptor.
[in]SecurityInformationSecurity information details to be set.
[in]SecurityDescriptorA security descriptor where its info is to be changed.
[in,out]ObjectsSecurityDescriptorThe returned pointer to security descriptor objects.
[in]AutoInheritFlagsFlags bitmask inheritation, influencing how the security descriptor can be inherited and if it can be in the first place.
[in]PoolTypePool type for the new security descriptor to allocate.
[in]GenericMappingThe generic mapping of access rights masks.
Returns
Returns STATUS_SUCCESS if the operations have been completed without problems and that new info has been set to the security descriptor. STATUS_NO_SECURITY_ON_OBJECT is returned if the object does not have a security descriptor. STATUS_INSUFFICIENT_RESOURCES is returned if memory pool allocation for the new security descriptor with new info set has failed.
Parameters
[in]SecurityDescriptorA security descriptor to be freed from memory.
Returns
Returns STATUS_SUCCESS.
Parameters
[in]_ParentDescriptorA security descriptor of the parent object that is being created.
[in]_ExplicitDescriptorAn explicit security descriptor that is applied to a new object.
[out]NewDescriptorThe new allocated security descriptor.
[in]ObjectTypeThe type of the new object.
[in]IsDirectoryObjectSet this to TRUE if the newly created object is a directory object, otherwise set this to FALSE.
[in]AutoInheritFlagsAutomatic inheritance flags that influence how access control entries within ACLs from security descriptors are inherited.
[in]SubjectContextSecurity subject context of the new object.
[in]GenericMappingGeneric mapping of access mask rights.
[in]PoolTypeThis parameter is unused.
Returns
Returns STATUS_SUCCESS if the operations have been completed successfully and that the security descriptor has been assigned to the new object. STATUS_NO_TOKEN is returned if the caller hasn't supplied a valid argument to a security subject context. STATUS_INVALID_OWNER is returned if the caller hasn't supplied a parent descriptor that belongs to the main user (owner). STATUS_INVALID_PRIMARY_GROUP is returned by the same reason as with the previous NTSTATUS code. The two NTSTATUS codes are returned if the calling thread stated that the owner and/or group is defaulted to the parent descriptor (SEF_DEFAULT_OWNER_FROM_PARENT and/or SEF_DEFAULT_GROUP_FROM_PARENT respectively). STATUS_INSUFFICIENT_RESOURCES is returned if memory pool allocation for the descriptor buffer has failed. A failure NTSTATUS is returned otherwise.
Parameters
[in]ParentDescriptorA security descriptor of the parent object that is being created.
[in]ExplicitDescriptorAn explicit security descriptor that is applied to a new object.
[out]NewDescriptorThe new allocated security descriptor.
[in]IsDirectoryObjectSet this to TRUE if the newly created object is a directory object, otherwise set this to FALSE.
[in]SubjectContextSecurity subject context of the new object.
[in]GenericMappingGeneric mapping of access mask rights.
[in]PoolTypeThis parameter is unused.
Returns
See SeAssignSecurityEx.
Parameters
[in]SecurityDescriptorA security descriptor.
[out]QuotaInfoSizeThe returned quota size of the given security descriptor to the caller. The function may return 0 to this parameter if the descriptor doesn't have a group or a discretionary access control list (DACL) even.
Returns
Returns STATUS_SUCCESS if the quota size of a security descriptor has been computed successfully. STATUS_UNKNOWN_REVISION is returned if the security descriptor has an invalid revision.

Definition at line 64 of file Messaging.c.

75 {
76  PFLT_SERVER_PORT_OBJECT PortObject;
78 
79  /* The caller must allow at least one connection */
80  if (MaxConnections == 0)
81  {
83  }
84 
85  /* The request must be for a kernel handle */
86  if (!(ObjectAttributes->Attributes & OBJ_KERNEL_HANDLE))
87  {
89  }
90 
91  /*
92  * Get rundown protection on the target to stop the owner
93  * from unloading whilst this port object is open. It gets
94  * removed in the FltpServerPortClose callback
95  */
97  if (!NT_SUCCESS(Status))
98  {
99  return Status;
100  }
101 
102  /* Create the server port object for this filter */
106  KernelMode,
107  NULL,
108  sizeof(FLT_SERVER_PORT_OBJECT),
109  0,
110  0,
111  (PVOID *)&PortObject);
112  if (NT_SUCCESS(Status))
113  {
114  /* Zero out the struct */
115  RtlZeroMemory(PortObject, sizeof(FLT_SERVER_PORT_OBJECT));
116 
117  /* Increment the ref count on the target filter */
119 
120  /* Setup the filter port object */
121  PortObject->Filter = Filter;
122  PortObject->ConnectNotify = ConnectNotifyCallback;
124  PortObject->MessageNotify = MessageNotifyCallback;
125  PortObject->Cookie = ServerPortCookie;
126  PortObject->MaxConnections = MaxConnections;
127 
128  /* Insert the object */
129  Status = ObInsertObject(PortObject,
130  NULL,
132  0,
133  NULL,
135  if (NT_SUCCESS(Status))
136  {
137  /* Lock the connection list */
139 
140  /* Add the new port object to the connection list and increment the count */
143 
144  /* Unlock the connection list*/
146  }
147  }
148 
149  if (!NT_SUCCESS(Status))
150  {
151  /* Allow the filter to be cleaned up */
153  }
154 
155  return Status;
156 }
IN PUNICODE_STRING IN POBJECT_ATTRIBUTES ObjectAttributes
Definition: conport.c:35
#define STATUS_INVALID_PARAMETER
Definition: udferr_usr.h:135
_Must_inspect_result_ _Outptr_ PFLT_PORT * ServerPort
Definition: fltkernel.h:1872
PFLT_CONNECT_NOTIFY ConnectNotify
Definition: fltmgrint.h:191
VOID FLTAPI FltObjectDereference(_Inout_ PVOID Object)
Definition: Object.c:53
LONG NTSTATUS
Definition: precomp.h:26
#define InsertTailList(ListHead, Entry)
#define OBJ_KERNEL_HANDLE
Definition: winternl.h:231
VOID FASTCALL ExReleaseFastMutex(IN PFAST_MUTEX FastMutex)
Definition: fmutex.c:31
ULONG FltpObjectPointerReference(_In_ PFLT_OBJECT Object)
Definition: Object.c:322
LIST_ENTRY mList
Definition: fltmgrint.h:56
_Must_inspect_result_ _In_opt_ PFLT_FILTER Filter
Definition: fltkernel.h:1801
#define FILE_READ_DATA
Definition: nt_native.h:628
NTSTATUS NTAPI ObCreateObject(IN KPROCESSOR_MODE ProbeMode OPTIONAL, IN POBJECT_TYPE Type, IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL, IN KPROCESSOR_MODE AccessMode, IN OUT PVOID ParseContext OPTIONAL, IN ULONG ObjectSize, IN ULONG PagedPoolCharge OPTIONAL, IN ULONG NonPagedPoolCharge OPTIONAL, OUT PVOID *Object)
Definition: oblife.c:952
Status
Definition: gdiplustypes.h:24
POBJECT_TYPE ServerPortObjectType
Definition: Messaging.c:24
#define NT_SUCCESS(StatCode)
Definition: apphelp.c:32
_Must_inspect_result_ _Outptr_ PFLT_PORT _In_ POBJECT_ATTRIBUTES _In_opt_ PVOID _In_ PFLT_CONNECT_NOTIFY _In_ PFLT_DISCONNECT_NOTIFY DisconnectNotifyCallback
Definition: fltkernel.h:1872
PVOID *typedef PHANDLE
Definition: ntsecpkg.h:454
_Must_inspect_result_ _Outptr_ PFLT_PORT _In_ POBJECT_ATTRIBUTES _In_opt_ PVOID _In_ PFLT_CONNECT_NOTIFY ConnectNotifyCallback
Definition: fltkernel.h:1872
NTSTATUS NTAPI ObInsertObject(IN PVOID Object, IN PACCESS_STATE AccessState OPTIONAL, IN ACCESS_MASK DesiredAccess, IN ULONG ObjectPointerBias, OUT PVOID *NewObject OPTIONAL, OUT PHANDLE Handle)
Definition: obhandle.c:2931
#define STANDARD_RIGHTS_ALL
Definition: nt_native.h:69
VOID FASTCALL ExAcquireFastMutex(IN PFAST_MUTEX FastMutex)
Definition: fmutex.c:23
NTSTATUS FLTAPI FltObjectReference(_Inout_ PVOID Object)
Definition: Object.c:41
_Must_inspect_result_ _Outptr_ PFLT_PORT _In_ POBJECT_ATTRIBUTES _In_opt_ PVOID ServerPortCookie
Definition: fltkernel.h:1872
#define NULL
Definition: types.h:112
FAST_MUTEX mLock
Definition: fltmgrint.h:55
PFLT_MESSAGE_NOTIFY MessageNotify
Definition: fltmgrint.h:193
#define RtlZeroMemory(Destination, Length)
Definition: typedefs.h:262
_Must_inspect_result_ _Outptr_ PFLT_PORT _In_ POBJECT_ATTRIBUTES _In_opt_ PVOID _In_ PFLT_CONNECT_NOTIFY _In_ PFLT_DISCONNECT_NOTIFY _In_opt_ PFLT_MESSAGE_NOTIFY _In_ LONG MaxConnections
Definition: fltkernel.h:1872
PFLT_DISCONNECT_NOTIFY DisconnectNotify
Definition: fltmgrint.h:192
_Must_inspect_result_ _Outptr_ PFLT_PORT _In_ POBJECT_ATTRIBUTES _In_opt_ PVOID _In_ PFLT_CONNECT_NOTIFY _In_ PFLT_DISCONNECT_NOTIFY _In_opt_ PFLT_MESSAGE_NOTIFY MessageNotifyCallback
Definition: fltkernel.h:1872
FLT_MUTEX_LIST_HEAD ConnectionList
Definition: fltmgrint.h:121

◆ _Out_writes_bytes_()

◆ _Out_writes_bytes_opt_()

◆ IoAssignDriveLetters()

VOID FASTCALL IoAssignDriveLetters ( _In_ struct _LOADER_PARAMETER_BLOCK LoaderBlock,
_In_ PSTRING  NtDeviceName,
_Out_ PUCHAR  NtSystemPath,
_Out_ PSTRING  NtSystemPathString 
)

◆ IoCreateDriver()

NTSTATUS NTAPI IoCreateDriver ( _In_opt_ PUNICODE_STRING  DriverName,
_In_ PDRIVER_INITIALIZE  InitializationFunction 
)

Definition at line 1550 of file driver.c.

1553 {
1554  WCHAR NameBuffer[100];
1555  USHORT NameLength;
1556  UNICODE_STRING LocalDriverName;
1557  NTSTATUS Status;
1559  ULONG ObjectSize;
1561  UNICODE_STRING ServiceKeyName;
1562  HANDLE hDriver;
1563  ULONG i, RetryCount = 0;
1564 
1565 try_again:
1566  /* First, create a unique name for the driver if we don't have one */
1567  if (!DriverName)
1568  {
1569  /* Create a random name and set up the string */
1570  NameLength = (USHORT)swprintf(NameBuffer,
1571  DRIVER_ROOT_NAME L"%08u",
1573  LocalDriverName.Length = NameLength * sizeof(WCHAR);
1574  LocalDriverName.MaximumLength = LocalDriverName.Length + sizeof(UNICODE_NULL);
1575  LocalDriverName.Buffer = NameBuffer;
1576  }
1577  else
1578  {
1579  /* So we can avoid another code path, use a local var */
1580  LocalDriverName = *DriverName;
1581  }
1582 
1583  /* Initialize the Attributes */
1584  ObjectSize = sizeof(DRIVER_OBJECT) + sizeof(EXTENDED_DRIVER_EXTENSION);
1586  &LocalDriverName,
1588  NULL,
1589  NULL);
1590 
1591  /* Create the Object */
1595  KernelMode,
1596  NULL,
1597  ObjectSize,
1598  0,
1599  0,
1600  (PVOID*)&DriverObject);
1601  if (!NT_SUCCESS(Status)) return Status;
1602 
1603  DPRINT("IopCreateDriver(): created DO %p\n", DriverObject);
1604 
1605  /* Set up the Object */
1606  RtlZeroMemory(DriverObject, ObjectSize);
1607  DriverObject->Type = IO_TYPE_DRIVER;
1608  DriverObject->Size = sizeof(DRIVER_OBJECT);
1610  DriverObject->DriverExtension = (PDRIVER_EXTENSION)(DriverObject + 1);
1611  DriverObject->DriverExtension->DriverObject = DriverObject;
1612  DriverObject->DriverInit = InitializationFunction;
1613  /* Loop all Major Functions */
1614  for (i = 0; i <= IRP_MJ_MAXIMUM_FUNCTION; i++)
1615  {
1616  /* Invalidate each function */
1617  DriverObject->MajorFunction[i] = IopInvalidDeviceRequest;
1618  }
1619 
1620  /* Set up the service key name buffer */
1621  ServiceKeyName.MaximumLength = LocalDriverName.Length + sizeof(UNICODE_NULL);
1622  ServiceKeyName.Buffer = ExAllocatePoolWithTag(PagedPool, LocalDriverName.MaximumLength, TAG_IO);
1623  if (!ServiceKeyName.Buffer)
1624  {
1625  /* Fail */
1629  }
1630 
1631  /* For builtin drivers, the ServiceKeyName is equal to DriverName */
1632  RtlCopyUnicodeString(&ServiceKeyName, &LocalDriverName);
1633  ServiceKeyName.Buffer[ServiceKeyName.Length / sizeof(WCHAR)] = UNICODE_NULL;
1634  DriverObject->DriverExtension->ServiceKeyName = ServiceKeyName;
1635 
1636  /* Make a copy of the driver name to store in the driver object */
1637  DriverObject->DriverName.MaximumLength = LocalDriverName.Length;
1638  DriverObject->DriverName.Buffer = ExAllocatePoolWithTag(PagedPool,
1639  DriverObject->DriverName.MaximumLength,
1640  TAG_IO);
1641  if (!DriverObject->DriverName.Buffer)
1642  {
1643  /* Fail */
1647  }
1648 
1649  RtlCopyUnicodeString(&DriverObject->DriverName, &LocalDriverName);
1650 
1651  /* Add the Object and get its handle */
1653  NULL,
1655  0,
1656  NULL,
1657  &hDriver);
1658 
1659  /* Eliminate small possibility when this function is called more than
1660  once in a row, and KeTickCount doesn't get enough time to change */
1661  if (!DriverName && (Status == STATUS_OBJECT_NAME_COLLISION) && (RetryCount < 100))
1662  {
1663  RetryCount++;
1664  goto try_again;
1665  }
1666 
1667  if (!NT_SUCCESS(Status)) return Status;
1668 
1669  /* Now reference it */
1671  0,
1673  KernelMode,
1674  (PVOID*)&DriverObject,
1675  NULL);
1676 
1677  /* Close the extra handle */
1678  ZwClose(hDriver);
1679 
1680  if (!NT_SUCCESS(Status))
1681  {
1682  /* Fail */
1685  return Status;
1686  }
1687 
1688  /* Finally, call its init function */
1689  DPRINT("Calling driver entrypoint at %p\n", InitializationFunction);
1690  Status = InitializationFunction(DriverObject, NULL);
1691  if (!NT_SUCCESS(Status))
1692  {
1693  /* If it didn't work, then kill the object */
1694  DPRINT1("'%wZ' initialization failed, status (0x%08lx)\n", DriverName, Status);
1697  return Status;
1698  }
1699 
1700  // Windows does this fixup - keep it for compatibility
1701  for (i = 0; i <= IRP_MJ_MAXIMUM_FUNCTION; i++)
1702  {
1703  /*
1704  * Make sure the driver didn't set any dispatch entry point to NULL!
1705  * Doing so is illegal; drivers shouldn't touch entry points they
1706  * do not implement.
1707  */
1708 
1709  /* Check if it did so anyway */
1710  if (!DriverObject->MajorFunction[i])
1711  {
1712  /* Print a warning in the debug log */
1713  DPRINT1("Driver <%wZ> set DriverObject->MajorFunction[%lu] to NULL!\n",
1714  &DriverObject->DriverName, i);
1715 
1716  /* Fix it up */
1717  DriverObject->MajorFunction[i] = IopInvalidDeviceRequest;
1718  }
1719  }
1720 
1721  /* Return the Status */
1722  return Status;
1723 }
#define STATUS_OBJECT_NAME_COLLISION
Definition: udferr_usr.h:150
IN PUNICODE_STRING IN POBJECT_ATTRIBUTES ObjectAttributes
Definition: conport.c:35
ULONG LowPart
Definition: ketypes.h:917
#define DRVO_BUILTIN_DRIVER
Definition: iotypes.h:2227
#define STATUS_INSUFFICIENT_RESOURCES
Definition: udferr_usr.h:158
#define TAG_IO
Definition: tag.h:69
#define OBJ_CASE_INSENSITIVE
Definition: winternl.h:228
USHORT MaximumLength
Definition: env_spec_w32.h:370
NTSYSAPI NTSTATUS NTAPI ZwClose(_In_ HANDLE Handle)
#define IRP_MJ_MAXIMUM_FUNCTION
LONG NTSTATUS
Definition: precomp.h:26
_In_ LPWSTR _In_ ULONG _In_ ULONG _In_ ULONG _Out_ DEVINFO _In_ HDEV _In_ LPWSTR _In_ HANDLE hDriver
Definition: winddi.h:3553
POBJECT_TYPE IoDriverObjectType
Definition: driver.c:33
#define swprintf
Definition: precomp.h:40
NTSTATUS NTAPI IopInvalidDeviceRequest(PDEVICE_OBJECT DeviceObject, PIRP Irp)
Definition: driver.c:67
#define OBJ_KERNEL_HANDLE
Definition: winternl.h:231
NTSYSAPI VOID NTAPI RtlCopyUnicodeString(PUNICODE_STRING DestinationString, PUNICODE_STRING SourceString)
NTSTATUS NTAPI ObReferenceObjectByHandle(IN HANDLE Handle, IN ACCESS_MASK DesiredAccess, IN POBJECT_TYPE ObjectType, IN KPROCESSOR_MODE AccessMode, OUT PVOID *Object, OUT POBJECT_HANDLE_INFORMATION HandleInformation OPTIONAL)
Definition: obref.c:494
#define UNICODE_NULL
#define FILE_READ_DATA
Definition: nt_native.h:628
_Must_inspect_result_ _In_ PDRIVER_OBJECT DriverObject
Definition: wdfdriver.h:213
NTSTATUS NTAPI ObCreateObject(IN KPROCESSOR_MODE ProbeMode OPTIONAL, IN POBJECT_TYPE Type, IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL, IN KPROCESSOR_MODE AccessMode, IN OUT PVOID ParseContext OPTIONAL, IN ULONG ObjectSize, IN ULONG PagedPoolCharge OPTIONAL, IN ULONG NonPagedPoolCharge OPTIONAL, OUT PVOID *Object)
Definition: oblife.c:952
Status
Definition: gdiplustypes.h:24
__wchar_t WCHAR
Definition: xmlstorage.h:180
#define NT_SUCCESS(StatCode)
Definition: apphelp.c:32
#define ObDereferenceObject
Definition: obfuncs.h:203
#define ExAllocatePoolWithTag(hernya, size, tag)
Definition: env_spec_w32.h:350
static const WCHAR L[]
Definition: oid.c:1250
NTKERNELAPI volatile KSYSTEM_TIME KeTickCount
Definition: clock.c:19
#define OBJ_PERMANENT
Definition: winternl.h:226
struct _DRIVER_OBJECT DRIVER_OBJECT
NTSTATUS NTAPI ObInsertObject(IN PVOID Object, IN PACCESS_STATE AccessState OPTIONAL, IN ACCESS_MASK DesiredAccess, IN ULONG ObjectPointerBias, OUT PVOID *NewObject OPTIONAL, OUT PHANDLE Handle)
Definition: obhandle.c:2931
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
Definition: glfuncs.h:248
unsigned short USHORT
Definition: pedump.c:61
struct _DRIVER_EXTENSION * PDRIVER_EXTENSION
#define NULL
Definition: types.h:112
#define IO_TYPE_DRIVER
#define DPRINT1
Definition: precomp.h:8
unsigned int ULONG
Definition: retypes.h:1
#define RtlZeroMemory(Destination, Length)
Definition: typedefs.h:262
#define InitializeObjectAttributes(p, n, a, r, s)
Definition: reg.c:106
#define DPRINT
Definition: sndvol32.h:71
PDRIVER_INITIALIZE DriverInit
Definition: iotypes.h:2286
#define DRIVER_ROOT_NAME
Definition: ldr.h:5
VOID NTAPI ObMakeTemporaryObject(IN PVOID ObjectBody)
Definition: oblife.c:1361

Referenced by HaliInitPnpDriver(), IopInitializeBootDrivers(), IopInitializePlugPlayServices(), and WmiInitialize().

◆ IoReportHalResourceUsage()

NTSTATUS NTAPI IoReportHalResourceUsage ( _In_ PUNICODE_STRING  HalName,
_In_ PCM_RESOURCE_LIST  RawResourceList,
_In_ PCM_RESOURCE_LIST  TranslatedResourceList,
_In_ ULONG  ResourceListSize 
)

◆ IoSynchronousInvalidateDeviceRelations()

NTSTATUS NTAPI IoSynchronousInvalidateDeviceRelations ( _In_ PDEVICE_OBJECT  DeviceObject,
_In_ DEVICE_RELATION_TYPE  Type 
)

◆ NtAddBootEntry()

NTSYSCALLAPI NTSTATUS NTAPI NtAddBootEntry ( _In_ PBOOT_ENTRY  BootEntry,
_In_ ULONG  Id 
)

◆ NtAddDriverEntry()

NTSYSCALLAPI NTSTATUS NTAPI NtAddDriverEntry ( _In_ PEFI_DRIVER_ENTRY  BootEntry,
_In_ ULONG  Id 
)

◆ NtCancelIoFile()

NTSYSCALLAPI NTSTATUS NTAPI NtCancelIoFile ( _In_ HANDLE  FileHandle,
_Out_ PIO_STATUS_BLOCK  IoStatusBlock 
)

◆ NtCreateFile()

__kernel_entry NTSYSCALLAPI NTSTATUS NTAPI NtCreateFile ( _Out_ PHANDLE  FileHandle,
_In_ ACCESS_MASK  DesiredAccess,
_In_ POBJECT_ATTRIBUTES  ObjectAttributes,
_Out_ PIO_STATUS_BLOCK  IoStatusBlock,
_In_opt_ PLARGE_INTEGER  AllocationSize,
_In_ ULONG  FileAttributes,
_In_ ULONG  ShareAccess,
_In_ ULONG  CreateDisposition,
_In_ ULONG  CreateOptions,
_In_reads_bytes_opt_(EaLength) PVOID  EaBuffer,
_In_ ULONG  EaLength 
)

◆ NtCreateIoCompletion()

NTSYSCALLAPI NTSTATUS NTAPI NtCreateIoCompletion ( _Out_ PHANDLE  IoCompletionHandle,
_In_ ACCESS_MASK  DesiredAccess,
_In_opt_ POBJECT_ATTRIBUTES  ObjectAttributes,
_In_ ULONG  NumberOfConcurrentThreads 
)

◆ NtCreateMailslotFile()

NTSYSCALLAPI NTSTATUS NTAPI NtCreateMailslotFile ( _Out_ PHANDLE  MailSlotFileHandle,
_In_ ACCESS_MASK  DesiredAccess,
_In_ POBJECT_ATTRIBUTES  ObjectAttributes,
_Out_ PIO_STATUS_BLOCK  IoStatusBlock,
_In_ ULONG  FileAttributes,
_In_ ULONG  ShareAccess,
_In_ ULONG  MaxMessageSize,
_In_ PLARGE_INTEGER  TimeOut 
)

◆ NtCreateNamedPipeFile()

NTSYSCALLAPI NTSTATUS NTAPI NtCreateNamedPipeFile ( _Out_ PHANDLE  NamedPipeFileHandle,
_In_ ACCESS_MASK  DesiredAccess,
_In_ POBJECT_ATTRIBUTES  ObjectAttributes,
_Out_ PIO_STATUS_BLOCK  IoStatusBlock,
_In_ ULONG  ShareAccess,
_In_ ULONG  CreateDisposition,
_In_ ULONG  CreateOptions,
_In_ ULONG  WriteModeMessage,
_In_ ULONG  ReadModeMessage,
_In_ ULONG  NonBlocking,
_In_ ULONG  MaxInstances,
_In_ ULONG  InBufferSize,
_In_ ULONG  OutBufferSize,
_In_ PLARGE_INTEGER  DefaultTimeOut 
)

◆ NtDeleteBootEntry()

NTSYSCALLAPI NTSTATUS NTAPI NtDeleteBootEntry ( _In_ ULONG  Id)

◆ NtDeleteDriverEntry()

NTSYSCALLAPI NTSTATUS NTAPI NtDeleteDriverEntry ( _In_ ULONG  Id)

◆ NtDeleteFile()

NTSYSCALLAPI NTSTATUS NTAPI NtDeleteFile ( _In_ POBJECT_ATTRIBUTES  ObjectAttributes)

◆ NtDeviceIoControlFile()

__kernel_entry NTSYSCALLAPI NTSTATUS NTAPI NtDeviceIoControlFile ( _In_ HANDLE  FileHandle,
_In_opt_ HANDLE  Event,
_In_opt_ PIO_APC_ROUTINE  ApcRoutine,
_In_opt_ PVOID  ApcContext,
_Out_ PIO_STATUS_BLOCK  IoStatusBlock,
_In_ ULONG  IoControlCode,
_In_reads_bytes_opt_(InputBufferLength) PVOID  InputBuffer,
_In_ ULONG  InputBufferLength,
_Out_writes_bytes_opt_(OutputBufferLength) PVOID  OutputBuffer,
_In_ ULONG  OutputBufferLength 
)

◆ NtEnumerateBootEntries()

NTSYSCALLAPI NTSTATUS NTAPI NtEnumerateBootEntries ( _In_ PVOID  Buffer,
_In_ PULONG  BufferLength 
)

◆ NtEnumerateDriverEntries()

NTSYSCALLAPI NTSTATUS NTAPI NtEnumerateDriverEntries ( _In_ PVOID  Buffer,
_In_ PULONG  BufferLength 
)

◆ NtFlushBuffersFile()

NTSYSCALLAPI NTSTATUS NTAPI NtFlushBuffersFile ( _In_ HANDLE  FileHandle,
_Out_ PIO_STATUS_BLOCK  IoStatusBlock 
)

◆ NtFlushWriteBuffer()

NTSYSCALLAPI NTSTATUS NTAPI NtFlushWriteBuffer ( VOID  )

Definition at line 3937 of file file.c.

3938 {
3939  PAGED_CODE();
3940 
3941  /* Call the kernel */
3943  return STATUS_SUCCESS;
3944 }
VOID NTAPI KeFlushWriteBuffer(VOID)
Definition: misc.c:39
#define STATUS_SUCCESS
Definition: shellext.h:65
#define PAGED_CODE()

◆ NtFsControlFile()

__kernel_entry NTSYSCALLAPI NTSTATUS NTAPI NtFsControlFile ( _In_ HANDLE  FileHandle,
_In_opt_ HANDLE  Event,
_In_opt_ PIO_APC_ROUTINE  ApcRoutine,
_In_opt_ PVOID  ApcContext,
_Out_ PIO_STATUS_BLOCK  IoStatusBlock,
_In_ ULONG  FsControlCode,
_In_reads_bytes_opt_(InputBufferLength) PVOID  InputBuffer,
_In_ ULONG  InputBufferLength,
_Out_writes_bytes_opt_(OutputBufferLength) PVOID  OutputBuffer,
_In_ ULONG  OutputBufferLength 
)

◆ NtLoadDriver()

NTSYSCALLAPI NTSTATUS NTAPI NtLoadDriver ( _In_ PUNICODE_STRING  DriverServiceName)

◆ NtLockFile()

NTSYSCALLAPI NTSTATUS NTAPI NtLockFile ( _In_ HANDLE  FileHandle,
_In_opt_ HANDLE  Event,
_In_opt_ PIO_APC_ROUTINE  ApcRoutine,
_In_opt_ PVOID  ApcContext,
_Out_ PIO_STATUS_BLOCK  IoStatusBlock,
_In_ PLARGE_INTEGER  ByteOffset,
_In_ PLARGE_INTEGER  Length,
_In_ ULONG  Key,
_In_ BOOLEAN  FailImmediatedly,
_In_ BOOLEAN  ExclusiveLock 
)

◆ NtModifyBootEntry()

NTSYSCALLAPI NTSTATUS NTAPI NtModifyBootEntry ( _In_ PBOOT_ENTRY  BootEntry)

◆ NtModifyDriverEntry()

NTSYSCALLAPI NTSTATUS NTAPI NtModifyDriverEntry ( _In_ PEFI_DRIVER_ENTRY  DriverEntry)

◆ NtNotifyChangeDirectoryFile()

NTSYSCALLAPI NTSTATUS NTAPI NtNotifyChangeDirectoryFile ( _In_ HANDLE  FileHandle,
_In_opt_ HANDLE  Event,
_In_opt_ PIO_APC_ROUTINE  ApcRoutine,
_In_opt_ PVOID  ApcContext,
_Out_ PIO_STATUS_BLOCK  IoStatusBlock,
_Out_ PVOID  Buffer,
_In_ ULONG  BufferSize,
_In_ ULONG  CompletionFilter,
_In_ BOOLEAN  WatchTree 
)

◆ NtOpenFile()

NTSYSCALLAPI NTSTATUS NTAPI NtOpenFile ( _Out_ PHANDLE  FileHandle,
_In_ ACCESS_MASK  DesiredAccess,
_In_ POBJECT_ATTRIBUTES  ObjectAttributes,
_Out_ PIO_STATUS_BLOCK  IoStatusBlock,
_In_ ULONG  ShareAccess,
_In_ ULONG  OpenOptions 
)

◆ NtOpenIoCompletion()

NTSYSCALLAPI NTSTATUS NTAPI NtOpenIoCompletion ( _Out_ PHANDLE  CompetionPort,
_In_ ACCESS_MASK  DesiredAccess,
_In_ POBJECT_ATTRIBUTES  ObjectAttributes 
)

◆ NtQueryAttributesFile()

NTSYSCALLAPI NTSTATUS NTAPI NtQueryAttributesFile ( _In_ POBJECT_ATTRIBUTES  ObjectAttributes,
_Out_ PFILE_BASIC_INFORMATION  FileInformation 
)

◆ NtQueryBootEntryOrder()

NTSYSCALLAPI NTSTATUS NTAPI NtQueryBootEntryOrder ( _In_ PULONG  Ids,
_In_ PULONG  Count 
)

◆ NtQueryBootOptions()

NTSYSCALLAPI NTSTATUS NTAPI NtQueryBootOptions ( _In_ PBOOT_OPTIONS  BootOptions,
_In_ PULONG  BootOptionsLength 
)

◆ NtQueryDirectoryFile()

__kernel_entry NTSYSCALLAPI NTSTATUS NTAPI NtQueryDirectoryFile ( _In_ HANDLE  FileHandle,
_In_opt_ HANDLE  Event,
_In_opt_ PIO_APC_ROUTINE  ApcRoutine,
_In_opt_ PVOID  ApcContext,
_Out_ PIO_STATUS_BLOCK  IoStatusBlock,
_Out_writes_bytes_(Length) PVOID  FileInformation,
_In_ ULONG  Length,
_In_ FILE_INFORMATION_CLASS  FileInformationClass,
_In_ BOOLEAN  ReturnSingleEntry,
_In_opt_ PUNICODE_STRING  FileName,
_In_ BOOLEAN  RestartScan 
)

◆ NtQueryDriverEntryOrder()

NTSTATUS NTAPI NtQueryDriverEntryOrder ( _In_ PULONG  Ids,
_In_ PULONG  Count 
)

◆ NtQueryEaFile()

NTSYSCALLAPI NTSTATUS NTAPI NtQueryEaFile ( _In_ HANDLE  FileHandle,
_Out_ PIO_STATUS_BLOCK  IoStatusBlock,
_Out_ PVOID  Buffer,
_In_ ULONG  Length,
_In_ BOOLEAN  ReturnSingleEntry,
_In_opt_ PVOID  EaList,
_In_ ULONG  EaListLength,
_In_opt_ PULONG  EaIndex,
_In_ BOOLEAN  RestartScan 
)

◆ NtQueryFullAttributesFile()

NTSYSCALLAPI NTSTATUS NTAPI NtQueryFullAttributesFile ( _In_ POBJECT_ATTRIBUTES  ObjectAttributes,
_Out_ PFILE_NETWORK_OPEN_INFORMATION  FileInformation 
)

◆ NtQueryInformationFile()

__kernel_entry NTSYSCALLAPI NTSTATUS NTAPI NtQueryInformationFile ( _In_ HANDLE  FileHandle,
_Out_ PIO_STATUS_BLOCK  IoStatusBlock,
_Out_writes_bytes_(Length) PVOID  FileInformation,
_In_ ULONG  Length,
_In_ FILE_INFORMATION_CLASS  FileInformationClass 
)

◆ NtQueryIoCompletion()

NTSYSCALLAPI NTSTATUS NTAPI NtQueryIoCompletion ( _In_ HANDLE  IoCompletionHandle,
_In_ IO_COMPLETION_INFORMATION_CLASS  IoCompletionInformationClass,
_Out_ PVOID  IoCompletionInformation,
_In_ ULONG  IoCompletionInformationLength,
_Out_opt_ PULONG  ResultLength 
)

◆ NtQueryQuotaInformationFile()

__kernel_entry NTSYSCALLAPI NTSTATUS NTAPI NtQueryQuotaInformationFile ( _In_ HANDLE  FileHandle,
_Out_ PIO_STATUS_BLOCK  IoStatusBlock,
_Out_writes_bytes_(Length) PVOID  Buffer,
_In_ ULONG  Length,
_In_ BOOLEAN  ReturnSingleEntry,
_In_reads_bytes_opt_(SidListLength) PVOID  SidList,
_In_ ULONG  SidListLength,
_In_reads_bytes_opt_((8+(4 *((SID *) StartSid) ->SubAuthorityCount))) PSID  StartSid,
_In_ BOOLEAN  RestartScan 
)

◆ NtQueryVolumeInformationFile()

__kernel_entry NTSYSCALLAPI NTSTATUS NTAPI NtQueryVolumeInformationFile ( _In_ HANDLE  FileHandle,
_Out_ PIO_STATUS_BLOCK  IoStatusBlock,
_Out_writes_bytes_(Length) PVOID  FsInformation,
_In_ ULONG  Length,
_In_ FS_INFORMATION_CLASS  FsInformationClass 
)

◆ NtReadFile()

__kernel_entry NTSYSCALLAPI NTSTATUS NTAPI NtReadFile ( _In_ HANDLE  FileHandle,
_In_opt_ HANDLE  Event,
_In_opt_ PIO_APC_ROUTINE  ApcRoutine,
_In_opt_ PVOID  ApcContext,
_Out_ PIO_STATUS_BLOCK  IoStatusBlock,
_Out_writes_bytes_(Length) PVOID  Buffer,
_In_ ULONG  Length,
_In_opt_ PLARGE_INTEGER  ByteOffset,
_In_opt_ PULONG  Key 
)

◆ NtReadFileScatter()

NTSYSCALLAPI NTSTATUS NTAPI NtReadFileScatter ( _In_ HANDLE  FileHandle,
_In_opt_ HANDLE  Event,
_In_opt_ PIO_APC_ROUTINE  UserApcRoutine,
_In_opt_ PVOID  UserApcContext,
_Out_ PIO_STATUS_BLOCK  UserIoStatusBlock,
_In_ FILE_SEGMENT_ELEMENT  BufferDescription[],
_In_ ULONG  BufferLength,
_In_ PLARGE_INTEGER  ByteOffset,
_In_opt_ PULONG  Key 
)

◆ NtRemoveIoCompletion()

NTSYSCALLAPI NTSTATUS NTAPI NtRemoveIoCompletion ( _In_ HANDLE  IoCompletionHandle,
_Out_ PVOID CompletionKey,
_Out_ PVOID CompletionContext,
_Out_ PIO_STATUS_BLOCK  IoStatusBlock,
_In_opt_ PLARGE_INTEGER  Timeout 
)

◆ NtSetBootEntryOrder()

NTSYSCALLAPI NTSTATUS NTAPI NtSetBootEntryOrder ( _In_ PULONG  Ids,
_In_ PULONG  Count 
)

◆ NtSetBootOptions()

NTSYSCALLAPI NTSTATUS NTAPI NtSetBootOptions ( _In_ PBOOT_OPTIONS  BootOptions,
_In_ ULONG  FieldsToChange 
)

◆ NtSetDriverEntryOrder()

NTSTATUS NTAPI NtSetDriverEntryOrder ( _In_ PULONG  Ids,
_In_ PULONG  Count 
)

◆ NtSetEaFile()

NTSYSCALLAPI NTSTATUS NTAPI NtSetEaFile ( _In_ HANDLE  FileHandle,
_In_ PIO_STATUS_BLOCK  IoStatusBlock,
PVOID  EaBuffer,
ULONG  EaBufferSize 
)

◆ NtSetInformationFile()

__kernel_entry NTSYSCALLAPI NTSTATUS NTAPI NtSetInformationFile ( _In_ HANDLE  FileHandle,
_Out_ PIO_STATUS_BLOCK  IoStatusBlock,
_In_reads_bytes_(Length) PVOID  FileInformation,
_In_ ULONG  Length,
_In_ FILE_INFORMATION_CLASS  FileInformationClass 
)

◆ NtSetIoCompletion()

NTSYSCALLAPI NTSTATUS NTAPI NtSetIoCompletion ( _In_ HANDLE  IoCompletionPortHandle,
_In_ PVOID  CompletionKey,
_In_ PVOID  CompletionContext,
_In_ NTSTATUS  CompletionStatus,
_In_ ULONG  CompletionInformation 
)

◆ NtSetQuotaInformationFile()

NTSYSCALLAPI NTSTATUS NTAPI NtSetQuotaInformationFile ( HANDLE  FileHandle,
PIO_STATUS_BLOCK  IoStatusBlock,
PVOID  Buffer,
ULONG  BufferLength 
)

◆ NtSetVolumeInformationFile()

__kernel_entry NTSYSCALLAPI NTSTATUS NTAPI NtSetVolumeInformationFile ( _In_ HANDLE  FileHandle,
_Out_ PIO_STATUS_BLOCK  IoStatusBlock,
_In_reads_bytes_(Length) PVOID  FsInformation,
_In_ ULONG  Length,
_In_ FS_INFORMATION_CLASS  FsInformationClass 
)

◆ NtTranslateFilePath()

NTSYSCALLAPI NTSTATUS NTAPI NtTranslateFilePath ( PFILE_PATH  InputFilePath,
ULONG  OutputType,
PFILE_PATH  OutputFilePath,
ULONG  OutputFilePathLength 
)

Definition at line 141 of file efi.c.

145 {
147  return STATUS_NOT_IMPLEMENTED;
148 }
return STATUS_NOT_IMPLEMENTED
#define UNIMPLEMENTED
Definition: debug.h:115

◆ NtUnloadDriver()

NTSYSCALLAPI NTSTATUS NTAPI NtUnloadDriver ( _In_ PUNICODE_STRING  DriverServiceName)

◆ NtUnlockFile()

__kernel_entry NTSYSCALLAPI NTSTATUS NTAPI NtUnlockFile ( _In_ HANDLE  FileHandle,
_Out_ PIO_STATUS_BLOCK  IoStatusBlock,
_In_ PLARGE_INTEGER  ByteOffset,
_In_ PLARGE_INTEGER  Length,
_In_ ULONG  Key 
)

◆ NtWriteFile()

__kernel_entry NTSYSCALLAPI NTSTATUS NTAPI NtWriteFile ( _In_ HANDLE  FileHandle,
_In_opt_ HANDLE  Event,
_In_opt_ PIO_APC_ROUTINE  ApcRoutine,
_In_opt_ PVOID  ApcContext,
_Out_ PIO_STATUS_BLOCK  IoStatusBlock,
_In_reads_bytes_(Length) PVOID  Buffer,
_In_ ULONG  Length,
_In_opt_ PLARGE_INTEGER  ByteOffset,
_In_opt_ PULONG  Key 
)

◆ NtWriteFileGather()

NTSYSCALLAPI NTSTATUS NTAPI NtWriteFileGather ( _In_ HANDLE  FileHandle,
_In_opt_ HANDLE  Event,
_In_opt_ PIO_APC_ROUTINE  ApcRoutine,
_In_opt_ PVOID  ApcContext,
_Out_ PIO_STATUS_BLOCK  IoStatusBlock,
_In_ FILE_SEGMENT_ELEMENT  BufferDescription[],
_In_ ULONG  BufferLength,
_In_ PLARGE_INTEGER  ByteOffset,
_In_opt_ PULONG  Key 
)

◆ ZwAddBootEntry()

NTSYSAPI NTSTATUS NTAPI ZwAddBootEntry ( _In_ PUNICODE_STRING  EntryName,
_In_ PUNICODE_STRING  EntryValue 
)

◆ ZwCancelIoFile()

NTSYSAPI NTSTATUS NTAPI ZwCancelIoFile ( _In_ HANDLE  FileHandle,
_Out_ PIO_STATUS_BLOCK  IoStatusBlock 
)

Referenced by RawInputThreadMain().

◆ ZwCreateIoCompletion()

NTSYSAPI NTSTATUS NTAPI ZwCreateIoCompletion ( _Out_ PHANDLE  IoCompletionHandle,
_In_ ACCESS_MASK  DesiredAccess,
_In_opt_ POBJECT_ATTRIBUTES  ObjectAttributes,
_In_ ULONG  NumberOfConcurrentThreads 
)

◆ ZwCreateMailslotFile()

NTSYSAPI NTSTATUS NTAPI ZwCreateMailslotFile ( _Out_ PHANDLE  MailSlotFileHandle,
_In_ ACCESS_MASK  DesiredAccess,
_In_ POBJECT_ATTRIBUTES  ObjectAttributes,
_Out_ PIO_STATUS_BLOCK  IoStatusBlock,
_In_ ULONG  FileAttributes,
_In_ ULONG  ShareAccess,
_In_ ULONG  MaxMessageSize,
_In_ PLARGE_INTEGER  TimeOut 
)

◆ ZwCreateNamedPipeFile()

NTSYSAPI NTSTATUS NTAPI ZwCreateNamedPipeFile ( _Out_ PHANDLE  NamedPipeFileHandle,
_In_ ACCESS_MASK  DesiredAccess,
_In_ POBJECT_ATTRIBUTES  ObjectAttributes,
_Out_ PIO_STATUS_BLOCK  IoStatusBlock,
_In_ ULONG  ShareAccess,
_In_ ULONG  CreateDisposition,
_In_ ULONG  CreateOptions,
_In_ ULONG  WriteModeMessage,
_In_ ULONG  ReadModeMessage,
_In_ ULONG  NonBlocking,
_In_ ULONG  MaxInstances,
_In_ ULONG  InBufferSize,
_In_ ULONG  OutBufferSize,
_In_ PLARGE_INTEGER  DefaultTimeOut 
)

◆ ZwDeleteBootEntry()

NTSYSAPI NTSTATUS NTAPI ZwDeleteBootEntry ( _In_ PUNICODE_STRING  EntryName,
_In_ PUNICODE_STRING  EntryValue 
)

◆ ZwDeleteFile()

NTSYSAPI NTSTATUS NTAPI ZwDeleteFile ( _In_ POBJECT_ATTRIBUTES  ObjectAttributes)

Referenced by START_TEST().

◆ ZwFlushWriteBuffer()

NTSYSAPI NTSTATUS NTAPI ZwFlushWriteBuffer ( VOID  )

◆ ZwLockFile()

NTSYSAPI NTSTATUS NTAPI ZwLockFile ( _In_ HANDLE  FileHandle,
_In_opt_ HANDLE  Event,
_In_opt_ PIO_APC_ROUTINE  ApcRoutine,
_In_opt_ PVOID  ApcContext,
_Out_ PIO_STATUS_BLOCK  IoStatusBlock,
_In_ PLARGE_INTEGER  ByteOffset,
_In_ PLARGE_INTEGER  Length,
_In_ ULONG  Key,
_In_ BOOLEAN  FailImmediatedly,
_In_ BOOLEAN  ExclusiveLock 
)

◆ ZwNotifyChangeDirectoryFile()

NTSYSAPI NTSTATUS NTAPI ZwNotifyChangeDirectoryFile ( _In_ HANDLE  FileHandle,
_In_opt_ HANDLE  Event,
_In_opt_ PIO_APC_ROUTINE  ApcRoutine,
_In_opt_ PVOID  ApcContext,
_Out_ PIO_STATUS_BLOCK  IoStatusBlock,
_Out_ PVOID  Buffer,
_In_ ULONG  BufferSize,
_In_ ULONG  CompletionFilter,
_In_ BOOLEAN  WatchTree 
)

◆ ZwOpenFile()

◆ ZwOpenIoCompletion()

NTSYSAPI NTSTATUS NTAPI ZwOpenIoCompletion ( _Out_ PHANDLE  CompetionPort,
_In_ ACCESS_MASK  DesiredAccess,
_In_ POBJECT_ATTRIBUTES  ObjectAttributes 
)

◆ ZwQueryAttributesFile()

NTSYSAPI NTSTATUS NTAPI ZwQueryAttributesFile ( _In_ POBJECT_ATTRIBUTES  ObjectAttributes,
_Out_ PFILE_BASIC_INFORMATION  FileInformation 
)

◆ ZwQueryFullAttributesFile()

NTSYSAPI NTSTATUS NTAPI ZwQueryFullAttributesFile ( _In_ POBJECT_ATTRIBUTES  ObjectAttributes,
_Out_ PFILE_NETWORK_OPEN_INFORMATION  FileInformation 
)

◆ ZwQueryIoCompletion()

NTSYSAPI NTSTATUS NTAPI ZwQueryIoCompletion ( _In_ HANDLE  IoCompletionHandle,
_In_ IO_COMPLETION_INFORMATION_CLASS  IoCompletionInformationClass,
_Out_ PVOID  IoCompletionInformation,
_In_ ULONG  IoCompletionInformationLength,
_Out_opt_ PULONG  ResultLength 
)

◆ ZwQueryQuotaInformationFile()

NTSYSAPI NTSTATUS NTAPI ZwQueryQuotaInformationFile ( _In_ HANDLE  FileHandle,
_Out_ PIO_STATUS_BLOCK  IoStatusBlock,
_Out_ PVOID  Buffer,
_In_ ULONG  Length,
_In_ BOOLEAN  ReturnSingleEntry,
_In_opt_ PVOID  SidList,
_In_ ULONG  SidListLength,
_In_opt_ PSID  StartSid,
_In_ BOOLEAN  RestartScan 
)

◆ ZwReadFileScatter()

NTSYSAPI NTSTATUS NTAPI ZwReadFileScatter ( _In_ HANDLE  FileHandle,
_In_opt_ HANDLE  Event,
_In_opt_ PIO_APC_ROUTINE  UserApcRoutine,
_In_opt_ PVOID  UserApcContext,
_Out_ PIO_STATUS_BLOCK  UserIoStatusBlock,
_In_ FILE_SEGMENT_ELEMENT  BufferDescription[],
_In_ ULONG  BufferLength,
_In_ PLARGE_INTEGER  ByteOffset,
_In_opt_ PULONG  Key 
)

◆ ZwRemoveIoCompletion()

NTSYSAPI NTSTATUS NTAPI ZwRemoveIoCompletion ( _In_ HANDLE  IoCompletionHandle,
_Out_ PVOID CompletionKey,
_Out_ PVOID CompletionContext,
_Out_ PIO_STATUS_BLOCK  IoStatusBlock,
_In_opt_ PLARGE_INTEGER  Timeout 
)

◆ ZwSetIoCompletion()

NTSYSAPI NTSTATUS NTAPI ZwSetIoCompletion ( _In_ HANDLE  IoCompletionPortHandle,
_In_ PVOID  CompletionKey,
_In_ PVOID  CompletionContext,
_In_ NTSTATUS  CompletionStatus,
_In_ ULONG  CompletionInformation 
)

◆ ZwSetQuotaInformationFile()

NTSYSAPI NTSTATUS NTAPI ZwSetQuotaInformationFile ( _In_ HANDLE  FileHandle,
_Out_ PIO_STATUS_BLOCK  IoStatusBlock,
_In_ PVOID  Buffer,
_In_ ULONG  BufferLength 
)

◆ ZwUnloadDriver()

NTSYSAPI NTSTATUS NTAPI ZwUnloadDriver ( _In_ PUNICODE_STRING  DriverServiceName)

Referenced by FltUnloadFilter(), and TestZwUnload().

◆ ZwUnlockFile()

NTSYSAPI NTSTATUS NTAPI ZwUnlockFile ( _In_ HANDLE  FileHandle,
_Out_ PIO_STATUS_BLOCK  IoStatusBlock,
_In_ PLARGE_INTEGER  ByteOffset,
_In_ PLARGE_INTEGER  Length,
_In_opt_ ULONG  Key 
)

◆ ZwWriteFileGather()

NTSYSAPI NTSTATUS NTAPI ZwWriteFileGather ( _In_ HANDLE  FileHandle,
_In_opt_ HANDLE  Event,
_In_opt_ PIO_APC_ROUTINE  ApcRoutine,
_In_opt_ PVOID  ApcContext,
_Out_ PIO_STATUS_BLOCK  IoStatusBlock,
_In_ FILE_SEGMENT_ELEMENT  BufferDescription[],
_In_ ULONG  BufferLength,
_In_ PLARGE_INTEGER  ByteOffset,
_In_opt_ PULONG  Key 
)

Variable Documentation

◆ AllocationSize

◆ ApcContext

◆ ApcRoutine

◆ ByteOffset

◆ CreateDisposition

◆ CreateOptions

◆ DesiredAccess

Definition at line 642 of file iofuncs.h.

◆ EaLength

◆ Event

Definition at line 719 of file iofuncs.h.

◆ FileAttributes

◆ FileInformationClass

Definition at line 841 of file iofuncs.h.

◆ FileName

◆ FsControlCode

◆ FsInformationClass

Definition at line 919 of file iofuncs.h.

◆ InputBufferLength

◆ IoControlCode

◆ IoStatusBlock

◆ Key

◆ Length

◆ ObjectAttributes

Definition at line 642 of file iofuncs.h.

◆ OutputBufferLength

◆ RestartScan

◆ ReturnSingleEntry

◆ ShareAccess