FreeRDP
libwinpr/handle/handle.h File Reference
#include <winpr/handle.h>
#include <winpr/file.h>
#include <winpr/synch.h>
#include <winpr/winsock.h>
This graph shows which files directly or indirectly include this file:

Data Structures

struct  _HANDLE_OPS
 
struct  WINPR_HANDLE
 

Macros

#define HANDLE_TYPE_NONE   0
 
#define HANDLE_TYPE_PROCESS   1
 
#define HANDLE_TYPE_THREAD   2
 
#define HANDLE_TYPE_EVENT   3
 
#define HANDLE_TYPE_MUTEX   4
 
#define HANDLE_TYPE_SEMAPHORE   5
 
#define HANDLE_TYPE_TIMER   6
 
#define HANDLE_TYPE_NAMED_PIPE   7
 
#define HANDLE_TYPE_ANONYMOUS_PIPE   8
 
#define HANDLE_TYPE_ACCESS_TOKEN   9
 
#define HANDLE_TYPE_FILE   10
 
#define HANDLE_TYPE_TIMER_QUEUE   11
 
#define HANDLE_TYPE_TIMER_QUEUE_TIMER   12
 
#define HANDLE_TYPE_COMM   13
 
#define WINPR_HANDLE_DEF()
 

Typedefs

typedef BOOL(* pcIsHandled) (HANDLE handle)
 
typedef BOOL(* pcCloseHandle) (HANDLE handle)
 
typedef int(* pcGetFd) (HANDLE handle)
 
typedef DWORD(* pcCleanupHandle) (HANDLE handle)
 
typedef BOOL(* pcReadFile) (PVOID Object, LPVOID lpBuffer, DWORD nNumberOfBytesToRead, LPDWORD lpNumberOfBytesRead, LPOVERLAPPED lpOverlapped)
 
typedef BOOL(* pcReadFileEx) (HANDLE hFile, LPVOID lpBuffer, DWORD nNumberOfBytesToRead, LPOVERLAPPED lpOverlapped, LPOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine)
 
typedef BOOL(* pcReadFileScatter) (HANDLE hFile, FILE_SEGMENT_ELEMENT aSegmentArray[], DWORD nNumberOfBytesToRead, LPDWORD lpReserved, LPOVERLAPPED lpOverlapped)
 
typedef BOOL(* pcWriteFile) (PVOID Object, LPCVOID lpBuffer, DWORD nNumberOfBytesToWrite, LPDWORD lpNumberOfBytesWritten, LPOVERLAPPED lpOverlapped)
 
typedef BOOL(* pcWriteFileEx) (HANDLE hFile, LPCVOID lpBuffer, DWORD nNumberOfBytesToWrite, LPOVERLAPPED lpOverlapped, LPOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine)
 
typedef BOOL(* pcWriteFileGather) (HANDLE hFile, FILE_SEGMENT_ELEMENT aSegmentArray[], DWORD nNumberOfBytesToWrite, LPDWORD lpReserved, LPOVERLAPPED lpOverlapped)
 
typedef DWORD(* pcGetFileSize) (HANDLE handle, LPDWORD lpFileSizeHigh)
 
typedef BOOL(* pcFlushFileBuffers) (HANDLE hFile)
 
typedef BOOL(* pcSetEndOfFile) (HANDLE handle)
 
typedef DWORD(* pcSetFilePointer) (HANDLE handle, LONG lDistanceToMove, PLONG lpDistanceToMoveHigh, DWORD dwMoveMethod)
 
typedef BOOL(* pcSetFilePointerEx) (HANDLE hFile, LARGE_INTEGER liDistanceToMove, PLARGE_INTEGER lpNewFilePointer, DWORD dwMoveMethod)
 
typedef BOOL(* pcLockFile) (HANDLE hFile, DWORD dwFileOffsetLow, DWORD dwFileOffsetHigh, DWORD nNumberOfBytesToLockLow, DWORD nNumberOfBytesToLockHigh)
 
typedef BOOL(* pcLockFileEx) (HANDLE hFile, DWORD dwFlags, DWORD dwReserved, DWORD nNumberOfBytesToLockLow, DWORD nNumberOfBytesToLockHigh, LPOVERLAPPED lpOverlapped)
 
typedef BOOL(* pcUnlockFile) (HANDLE hFile, DWORD dwFileOffsetLow, DWORD dwFileOffsetHigh, DWORD nNumberOfBytesToUnlockLow, DWORD nNumberOfBytesToUnlockHigh)
 
typedef BOOL(* pcUnlockFileEx) (HANDLE hFile, DWORD dwReserved, DWORD nNumberOfBytesToUnlockLow, DWORD nNumberOfBytesToUnlockHigh, LPOVERLAPPED lpOverlapped)
 
typedef BOOL(* pcSetFileTime) (HANDLE hFile, const FILETIME *lpCreationTime, const FILETIME *lpLastAccessTime, const FILETIME *lpLastWriteTime)
 

Functions

static INLINE void WINPR_HANDLE_SET_TYPE_AND_MODE (void *_handle, ULONG _type, ULONG _mode)
 
static INLINE BOOL winpr_Handle_GetInfo (HANDLE handle, ULONG *pType, WINPR_HANDLE **pObject)
 
static INLINE int winpr_Handle_getFd (HANDLE handle)
 
static INLINE DWORD winpr_Handle_cleanup (HANDLE handle)
 

Macro Definition Documentation

◆ HANDLE_TYPE_ACCESS_TOKEN

#define HANDLE_TYPE_ACCESS_TOKEN   9

◆ HANDLE_TYPE_ANONYMOUS_PIPE

#define HANDLE_TYPE_ANONYMOUS_PIPE   8

◆ HANDLE_TYPE_COMM

#define HANDLE_TYPE_COMM   13

◆ HANDLE_TYPE_EVENT

#define HANDLE_TYPE_EVENT   3

◆ HANDLE_TYPE_FILE

#define HANDLE_TYPE_FILE   10

◆ HANDLE_TYPE_MUTEX

#define HANDLE_TYPE_MUTEX   4

◆ HANDLE_TYPE_NAMED_PIPE

#define HANDLE_TYPE_NAMED_PIPE   7

◆ HANDLE_TYPE_NONE

#define HANDLE_TYPE_NONE   0

WinPR: Windows Portable Runtime Handle Management

Copyright 2012 Marc-Andre Moreau marca.nosp@m.ndre.nosp@m..more.nosp@m.au@g.nosp@m.mail..nosp@m.com

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

◆ HANDLE_TYPE_PROCESS

#define HANDLE_TYPE_PROCESS   1

◆ HANDLE_TYPE_SEMAPHORE

#define HANDLE_TYPE_SEMAPHORE   5

◆ HANDLE_TYPE_THREAD

#define HANDLE_TYPE_THREAD   2

◆ HANDLE_TYPE_TIMER

#define HANDLE_TYPE_TIMER   6

◆ HANDLE_TYPE_TIMER_QUEUE

#define HANDLE_TYPE_TIMER_QUEUE   11

◆ HANDLE_TYPE_TIMER_QUEUE_TIMER

#define HANDLE_TYPE_TIMER_QUEUE_TIMER   12

◆ WINPR_HANDLE_DEF

#define WINPR_HANDLE_DEF ( )
Value:
ULONG Type; \
ULONG Mode; \
HANDLE_OPS* ops

Typedef Documentation

◆ pcCleanupHandle

typedef DWORD(* pcCleanupHandle) (HANDLE handle)

◆ pcCloseHandle

typedef BOOL(* pcCloseHandle) (HANDLE handle)

◆ pcFlushFileBuffers

typedef BOOL(* pcFlushFileBuffers) (HANDLE hFile)

◆ pcGetFd

typedef int(* pcGetFd) (HANDLE handle)

◆ pcGetFileSize

typedef DWORD(* pcGetFileSize) (HANDLE handle, LPDWORD lpFileSizeHigh)

◆ pcIsHandled

typedef BOOL(* pcIsHandled) (HANDLE handle)

◆ pcLockFile

typedef BOOL(* pcLockFile) (HANDLE hFile, DWORD dwFileOffsetLow, DWORD dwFileOffsetHigh, DWORD nNumberOfBytesToLockLow, DWORD nNumberOfBytesToLockHigh)

◆ pcLockFileEx

typedef BOOL(* pcLockFileEx) (HANDLE hFile, DWORD dwFlags, DWORD dwReserved, DWORD nNumberOfBytesToLockLow, DWORD nNumberOfBytesToLockHigh, LPOVERLAPPED lpOverlapped)

◆ pcReadFile

typedef BOOL(* pcReadFile) (PVOID Object, LPVOID lpBuffer, DWORD nNumberOfBytesToRead, LPDWORD lpNumberOfBytesRead, LPOVERLAPPED lpOverlapped)

◆ pcReadFileEx

typedef BOOL(* pcReadFileEx) (HANDLE hFile, LPVOID lpBuffer, DWORD nNumberOfBytesToRead, LPOVERLAPPED lpOverlapped, LPOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine)

◆ pcReadFileScatter

typedef BOOL(* pcReadFileScatter) (HANDLE hFile, FILE_SEGMENT_ELEMENT aSegmentArray[], DWORD nNumberOfBytesToRead, LPDWORD lpReserved, LPOVERLAPPED lpOverlapped)

◆ pcSetEndOfFile

typedef BOOL(* pcSetEndOfFile) (HANDLE handle)

◆ pcSetFilePointer

typedef DWORD(* pcSetFilePointer) (HANDLE handle, LONG lDistanceToMove, PLONG lpDistanceToMoveHigh, DWORD dwMoveMethod)

◆ pcSetFilePointerEx

typedef BOOL(* pcSetFilePointerEx) (HANDLE hFile, LARGE_INTEGER liDistanceToMove, PLARGE_INTEGER lpNewFilePointer, DWORD dwMoveMethod)

◆ pcSetFileTime

typedef BOOL(* pcSetFileTime) (HANDLE hFile, const FILETIME *lpCreationTime, const FILETIME *lpLastAccessTime, const FILETIME *lpLastWriteTime)

◆ pcUnlockFile

typedef BOOL(* pcUnlockFile) (HANDLE hFile, DWORD dwFileOffsetLow, DWORD dwFileOffsetHigh, DWORD nNumberOfBytesToUnlockLow, DWORD nNumberOfBytesToUnlockHigh)

◆ pcUnlockFileEx

typedef BOOL(* pcUnlockFileEx) (HANDLE hFile, DWORD dwReserved, DWORD nNumberOfBytesToUnlockLow, DWORD nNumberOfBytesToUnlockHigh, LPOVERLAPPED lpOverlapped)

◆ pcWriteFile

typedef BOOL(* pcWriteFile) (PVOID Object, LPCVOID lpBuffer, DWORD nNumberOfBytesToWrite, LPDWORD lpNumberOfBytesWritten, LPOVERLAPPED lpOverlapped)

◆ pcWriteFileEx

typedef BOOL(* pcWriteFileEx) (HANDLE hFile, LPCVOID lpBuffer, DWORD nNumberOfBytesToWrite, LPOVERLAPPED lpOverlapped, LPOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine)

◆ pcWriteFileGather

typedef BOOL(* pcWriteFileGather) (HANDLE hFile, FILE_SEGMENT_ELEMENT aSegmentArray[], DWORD nNumberOfBytesToWrite, LPDWORD lpReserved, LPOVERLAPPED lpOverlapped)

Function Documentation

◆ winpr_Handle_cleanup()

static INLINE DWORD winpr_Handle_cleanup ( HANDLE  handle)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ winpr_Handle_getFd()

static INLINE int winpr_Handle_getFd ( HANDLE  handle)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ winpr_Handle_GetInfo()

static INLINE BOOL winpr_Handle_GetInfo ( HANDLE  handle,
ULONG *  pType,
WINPR_HANDLE **  pObject 
)
static
Here is the caller graph for this function:

◆ WINPR_HANDLE_SET_TYPE_AND_MODE()

static INLINE void WINPR_HANDLE_SET_TYPE_AND_MODE ( void *  _handle,
ULONG  _type,
ULONG  _mode 
)
static
Here is the caller graph for this function:
ops
static HANDLE_OPS ops
Definition: namedPipeClient.c:106