dxd - dynax driver framework 3.0.2
cross platform open source driver development framework
Loading...
Searching...
No Matches
dxd_platform.h File Reference
#include "dxd.h"
#include <ntddk.h>
Include dependency graph for wdm/dxd_platform.h:
This graph shows which files directly or indirectly include this file:

Classes

union  dxd::fourchar_string
 a four character code as a string on the stack: the kernel has no allocation free formatting, so the code is unpacked into this and printed as s More...
class  dxd::guid

Namespaces

namespace  dx
 dynax driver framework interface namespace
namespace  dxd
 dynax driver framework kernel namespace
namespace  dxd::ioctl
 kernel IOCTLs

Macros

#define at_dynax_dxd_try(test)
#define catch   _catch
#define offsetof(type, member)
#define OSDeclareDefaultStructors(...)
#define OSDefineMetaClassAndStructors(...)
#define strcasecmp   _stricmp
#define try(...)

Typedefs

typedef short int16_t
typedef int int32_t
typedef __int64 int64_t
typedef signed char int8_t
typedef ::IOReturn dx::os_result
 defining platform abstract type os_result for IOKit driver
typedef unsigned short uint16_t
typedef unsigned int uint32_t
typedef unsigned __int64 uint64_t
typedef unsigned char uint8_t

Enumerations

enum  {
  dxd::ok = kIOReturnSuccess , dxd::not_implemented = kIOReturnUnsupported , dxd::invalid = kIOReturnBadArgument , dxd::device_error = kIOReturnDeviceError ,
  dxd::no_resources = kIOReturnNoResources , dxd::not_initialized = kIOReturnNotReady , dxd::already_running = kIOReturnBusy , dxd::interrupt_level_mismatch = STATUS_INVALID_LEVEL ,
  dxd::timeout = kIOReturnTimeout , dxd::invalid_size = kIOReturnNoSpace , dxd::not_aligned = STATUS_DATATYPE_MISALIGNMENT_ERROR , dxd::aborted = kIOReturnAborted ,
  dxd::failed = STATUS_UNSUCCESSFUL , dxd::device_removed = kIOReturnNotAttached , dxd::not_permitted = kIOReturnNotPermitted , dxd::internal_error = kIOReturnInternalError ,
  dxd::insufficient_bandwidth = STATUS_CAMERA_INSUFFICIENT_BANDWIDTH
}
enum  dxd::direction { dxd::none , dxd::in , dxd::out , dxd::both }
 the direction of a transfer or a pipe, both for what serves either More...
enum class  dxd::synchrony { dxd::sync , dxd::async }
 whether a request is awaited by its caller or completes into a callback - the template argument every URB and IRP class is built with More...

Functions

template<class driver_t, typename... args_t>
::NTSTATUS dxd::create(::DRIVER_OBJECT* wdm_driver, ::UNICODE_STRING* registry, args_t... args)
void dxd::errorlog(const char* fmt...)
void dxd::log(const char* fmt...)
 windows kernel logging
template<typename type_t>
type_t dxd::max(type_t v1, type_t v2)
template<typename type_t>
type_t dxd::min(type_t v1, type_t v2)
::NTSTATUS dxd::register_resource(const ::UNICODE_STRING& registry)
 ...\Services\<service> -> ...\Services\EventLog\System\<service>: EventMessageFile= SystemRoot%\system32\drivers\<service>.sys
void dxd::warnlog(const char* fmt...)

Macro Definition Documentation

◆ at_dynax_dxd_try

#define at_dynax_dxd_try(test)
Value:
{\
::NTSTATUS at_dynax_dxd_status= (test);\
if NT_ERROR(at_dynax_dxd_status) {\
dxd::errorlog("%s(%d) %s[%x,irql:%d]:\n %s\n", \
__FILE__, __LINE__, __FUNCTION__, at_dynax_dxd_status, ::KeGetCurrentIrql(), #test);\
goto catch;}}

◆ catch

#define catch   _catch

◆ offsetof

#define offsetof(type, member)
Value:
((size_t)(&((type*)0)->member))

◆ OSDeclareDefaultStructors

#define OSDeclareDefaultStructors(...)

◆ OSDefineMetaClassAndStructors

#define OSDefineMetaClassAndStructors(...)

◆ strcasecmp

#define strcasecmp   _stricmp

◆ try

#define try(...)
Value:
at_dynax_dxd_try((__VA_ARGS__))
#define at_dynax_dxd_try(test)
Definition wdm/dxd_platform.h:102

Typedef Documentation

◆ int16_t

typedef short int16_t

◆ int32_t

typedef int int32_t

◆ int64_t

typedef __int64 int64_t

◆ int8_t

typedef signed char int8_t

◆ uint16_t

typedef unsigned short uint16_t

◆ uint32_t

typedef unsigned int uint32_t

◆ uint64_t

typedef unsigned __int64 uint64_t

◆ uint8_t

typedef unsigned char uint8_t