28 #define FX_DYNAMICS_GENERATE_TABLE 1 34 #include "wdfversionlog.h" 36 #define DRIVER_OBJECT_EXTENSION_IDENTIFIER DriverEntry 37 #define DRIVER_PARAMETERS L"Parameters" 38 #define REGISTRY_KMDF_MAJOR_VERSION L"MajorVersion" 39 #define REGISTRY_KMDF_MINOR_VERSION L"MinorVersion" 40 #define REGISTRY_KMDF_BUILD_NUMBER L"BuildNumber" 81 #include "fxdynamics.h" 83 #include "fxlibrarycommon.h" 85 #define KMDF_DEFAULT_NAME "Wdf" ## \ 86 LITERAL(__WDF_MAJOR_VERSION_STRING) ## \ 177 #pragma prefast(suppress:__WARNING_ENCODE_MEMBER_FUNCTION_POINTER, "kernel component."); 184 { __WDF_MAJOR_VERSION, __WDF_MINOR_VERSION, __WDF_BUILD_NUMBER }
224 Irp->IoStatus.Information = 0x0;
234 #define KMDF_DEVICE_NAME L"\\Device\\KMDF" 331 ExInitializeDriverRuntime(DrvRtPoolNxOptIn);
364 __Print((
"ERROR: FxLibraryCreateDevice failed with Status 0x%x\n",
status));
376 __Print((
"ERROR: WdfRegisterLibrary failed with Status 0x%x\n",
status));
438 #define EVTLOG_MESSAGE_SIZE 70 439 #define RAW_DATA_SIZE 4 473 L"Driver Version: %d.%d Kmdf Lib. Version: %d.%d",
479 __Print((
"ERROR: RtlStringCchPrintfW failed with Status 0x%x\n",
status));
488 WDFVER_MINOR_VERSION_NOT_SUPPORTED,
550 parametersKey =
NULL;
551 driverExtension =
NULL;
563 __Print((
"WdfWriteKmdfVersionToRegistry: Failed to open HKLM\\%S\n",
577 status = ZwCreateKey(¶metersKey,
586 __Print((
"WdfWriteKmdfVersionToRegistry: Failed to open HKLM\\%S\\%S\n",
596 status = ZwSetValueKey(parametersKey,
604 __Print((
"WdfWriteKmdfVersionToRegistry: Failed to set Major Version\n"));
613 status = ZwSetValueKey(parametersKey,
621 __Print((
"WdfWriteKmdfVersionToRegistry: Failed to set Minor Version\n"));
631 status = ZwSetValueKey(parametersKey,
639 __Print((
"WdfWriteKmdfVersionToRegistry: Failed to set Build Number\n"));
650 (
PVOID *)&driverExtension);
660 if (driverExtension->ParametersRegistryPath.Buffer ==
NULL) {
664 driverExtension->ParametersRegistryPath.MaximumLength =
RegistryPath->MaximumLength;
668 if (driverKey !=
NULL) {
672 if (parametersKey !=
NULL) {
696 parametersKey =
NULL;
726 status = ZwOpenKey(¶metersKey,
743 ZwDeleteKey(parametersKey);
750 if (driverKey !=
NULL) {
754 if (parametersKey !=
NULL) {
#define DO_DEVICE_INITIALIZING
#define STATUS_OBJECT_NAME_COLLISION
WDF_LIBRARY_INFO WdfLibraryInfo
_Must_inspect_result_ NTSTATUS WDF_LIBRARY_DECOMMISSION(VOID)
struct png_info_def **typedef void(__cdecl typeof(png_destroy_read_struct))(struct png_struct_def **
_Must_inspect_result_ NTSTATUS FxLibraryCommonCommission(VOID)
PDEVICE_OBJECT LibraryDeviceObject
NTSTATUS NTAPI IoAllocateDriverObjectExtension(IN PDRIVER_OBJECT DriverObject, IN PVOID ClientIdentificationAddress, IN ULONG DriverObjectExtensionSize, OUT PVOID *DriverObjectExtension)
#define OBJ_CASE_INSENSITIVE
#define UNREFERENCED_PARAMETER(P)
#define STATUS_INVALID_PARAMETER
NTSYSAPI NTSTATUS NTAPI ZwClose(_In_ HANDLE Handle)
#define REGISTRY_KMDF_MAJOR_VERSION
DRIVER_UNLOAD DriverUnload
NTSTRSAFEVAPI RtlStringCchPrintfW(_Out_writes_(cchDest) _Always_(_Post_z_) NTSTRSAFE_PWSTR pszDest, _In_ size_t cchDest, _In_ _Printf_format_string_ NTSTRSAFE_PCWSTR pszFormat,...)
_Must_inspect_result_ NTSTATUS FxLibraryCommonRegisterClient(__inout PWDF_BIND_INFO Info, __deref_out PWDF_DRIVER_GLOBALS *WdfDriverGlobals, __in_opt PCLIENT_INFO ClientInfo)
WDF_POWER_ROUTINE_TIMED_OUT_DATA * typeWDF_POWER_ROUTINE_TIMED_OUT_DATA
WDF_BUGCHECK_CODES * typeWDF_BUGCHECK_CODES
_Must_inspect_result_ _In_ PDRIVER_OBJECT _In_ PCUNICODE_STRING RegistryPath
NTSYSAPI NTSTATUS NTAPI ZwDeleteValueKey(__in IN HANDLE Key, __in IN PUNICODE_STRING ValueName)
#define STATUS_INVALID_DEVICE_REQUEST
_Must_inspect_result_ NTSTATUS(* PFNLIBRARYREGISTERCLIENT)(__in PWDF_BIND_INFO Info, __deref_out PWDF_COMPONENT_GLOBALS *ComponentGlobals, __deref_inout PVOID *Context)
FX_POOL_HEADER * typeFX_POOL_HEADER
#define OBJ_KERNEL_HANDLE
NTSTATUS FxLibraryDispatch(__in struct _DEVICE_OBJECT *DeviceObject, __in PIRP Irp)
_Must_inspect_result_ NTSTATUS FxLibraryCreateDevice(__in PUNICODE_STRING DeviceName)
WDF_OBJECT_CONTEXT_TYPE_INFO * typeWDF_OBJECT_CONTEXT_TYPE_INFO
RTL_OSVERSIONINFOW gOsVersion
NTSYSAPI VOID NTAPI RtlCopyUnicodeString(PUNICODE_STRING DestinationString, PUNICODE_STRING SourceString)
VOID WdfDeleteKmdfVersionFromRegistry(__in PDRIVER_OBJECT DriverObject)
_Must_inspect_result_ _In_ WDFCHILDLIST _In_ PWDF_CHILD_LIST_ITERATOR _Out_ WDFDEVICE _Inout_opt_ PWDF_CHILD_RETRIEVE_INFO Info
WDF_IFR_RECORD * typeWDF_IFR_RECORD
_In_ PDEVICE_OBJECT DeviceObject
VOID FxLibraryDeleteDevice(VOID)
_Must_inspect_result_ _In_ PWDFDEVICE_INIT _In_opt_ PCUNICODE_STRING DeviceName
VOID LibraryLogEvent(__in PDRIVER_OBJECT DriverObject, __in NTSTATUS ErrorCode, __in NTSTATUS FinalStatus, __in PWSTR ErrorInsertionString, __in_bcount(RawDataLen) PVOID RawDataBuf, __in USHORT RawDataLen)
FxContextHeader * typeFxContextHeader
FX_OBJECT_INFO * typeFX_OBJECT_INFO
FX_DUMP_DRIVER_INFO_ENTRY * typeFX_DUMP_DRIVER_INFO_ENTRY
#define WDF_REGISTRY_DBGPRINT_ON
enum _WDF_REQUEST_FATAL_ERROR_CODES WDF_REQUEST_FATAL_ERROR_CODES
VOID WdfWriteKmdfVersionToRegistry(__in PDRIVER_OBJECT DriverObject, __in PUNICODE_STRING RegistryPath)
#define IoCompleteRequest
WDF_IFR_HEADER * typeWDF_IFR_HEADER
FxTargetSubmitSyncParams * typeFxTargetSubmitSyncParams
_Must_inspect_result_ NTSTATUS FxLibraryCommonUnregisterClient(__in PWDF_BIND_INFO Info, __in PWDF_DRIVER_GLOBALS WdfDriverGlobals)
_Must_inspect_result_ NTSTATUS WDF_LIBRARY_COMMISSION(VOID)
struct _OSVERSIONINFOW RTL_OSVERSIONINFOW
union @4538 uAllPublicTypes
_Must_inspect_result_ _In_ PDRIVER_OBJECT DriverObject
PDRIVER_OBJECT DriverObject
DRIVER_INITIALIZE DriverEntry
PWDF_DRIVER_GLOBALS WdfDriverGlobals
_Must_inspect_result_ NTSTATUS FxLibraryCommonDecommission(VOID)
#define DRIVER_PARAMETERS
#define STATUS_OBJECT_TYPE_MISMATCH
_Must_inspect_result_ NTSTATUS WDF_LIBRARY_UNREGISTER_CLIENT(__in PWDF_BIND_INFO Info, __in PWDF_DRIVER_GLOBALS WdfDriverGlobals)
WDF_IFR_OFFSET * typeWDF_IFR_OFFSET
PFX_DRIVER_GLOBALS pFxDriverGlobals
WDF_BIND_INFO * typeWDF_BIND_INFO
#define NT_SUCCESS(StatCode)
_Must_inspect_result_ NTSTATUS(* PFNLIBRARYDECOMMISSION)(VOID)
PWDF_BIND_INFO WdfBindInfo
struct _DRV_EXTENSION DRV_EXTENSION
struct _DRV_EXTENSION * PDRV_EXTENSION
WDF_REQUEST_FATAL_ERROR_CODES * typeWDF_REQUEST_FATAL_ERROR_CODES
#define ExAllocatePoolWithTag(hernya, size, tag)
struct _WDF_LIBRARY_INFO WDF_LIBRARY_INFO
#define REGISTRY_KMDF_MINOR_VERSION
#define KMDF_DEFAULT_NAME
PVOID NTAPI IoGetDriverObjectExtension(IN PDRIVER_OBJECT DriverObject, IN PVOID ClientIdentificationAddress)
#define _Must_inspect_result_
DRIVER_DISPATCH(nfs41_FsdDispatch)
FxLibraryGlobalsType FxLibraryGlobals
WDF_EXTERN_C_START enum _WDF_BUGCHECK_CODES WDF_BUGCHECK_CODES
_Must_inspect_result_ NTSTATUS(* PFNLIBRARYCOMMISSION)(VOID)
__drv_aliasesMem FORCEINLINE PIO_STACK_LOCATION IoGetCurrentIrpStackLocation(_In_ PIRP Irp)
VOID NTAPI IoDeleteDevice(IN PDEVICE_OBJECT DeviceObject)
#define DRIVER_OBJECT_EXTENSION_IDENTIFIER
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
#define REGISTRY_KMDF_BUILD_NUMBER
#define EVTLOG_MESSAGE_SIZE
#define FILE_DEVICE_UNKNOWN
UNICODE_STRING ParametersRegistryPath
_Must_inspect_result_ NTSTATUS WdfRegisterLibrary(__in PWDF_LIBRARY_INFO LibraryInfo, __in PUNICODE_STRING ServicePath, __in PCUNICODE_STRING LibraryDeviceName)
VOID FxLibraryCleanup(VOID)
PDRIVER_DISPATCH MajorFunction[IRP_MJ_MAXIMUM_FUNCTION+1]
struct _CLIENT_INFO * PCLIENT_INFO
NTSTATUS NTAPI IoCreateDevice(IN PDRIVER_OBJECT DriverObject, IN ULONG DeviceExtensionSize, IN PUNICODE_STRING DeviceName, IN DEVICE_TYPE DeviceType, IN ULONG DeviceCharacteristics, IN BOOLEAN Exclusive, OUT PDEVICE_OBJECT *DeviceObject)
NTSYSAPI VOID NTAPI RtlInitUnicodeString(PUNICODE_STRING DestinationString, PCWSTR SourceString)
#define RtlZeroMemory(Destination, Length)
#define InitializeObjectAttributes(p, n, a, r, s)
_Must_inspect_result_ NTSTATUS WDF_LIBRARY_REGISTER_CLIENT(__inout PWDF_BIND_INFO Info, __deref_out PWDF_DRIVER_GLOBALS *WdfDriverGlobals, __deref_inout PVOID *Context)
__inline PFX_DRIVER_GLOBALS GetFxDriverGlobals(__in PWDF_DRIVER_GLOBALS DriverGlobals)
static unsigned char rawData[2356]
#define REG_OPTION_VOLATILE
NTSTRSAFEVAPI RtlUnicodeStringPrintf(_In_ PUNICODE_STRING DestinationString, _In_ NTSTRSAFE_PCWSTR pszFormat,...)
static SERVICE_STATUS status
#define KEY_CREATE_SUB_KEY
__drv_dispatchType(IRP_MJ_CREATE) __drv_dispatchType(IRP_MJ_CLEANUP) __drv_dispatchType(IRP_MJ_CLOSE) DRIVER_DISPATCH FxLibraryDispatch
_Must_inspect_result_ NTSTATUS(* PFNLIBRARYUNREGISTERCLIENT)(__in PWDF_BIND_INFO Info, __in PWDF_COMPONENT_GLOBALS DriverGlobals)
GLuint const GLchar * name