WDK Mini Filter Example
ncinit.c File Reference
#include "nc.h"

Go to the source code of this file.

Functions

 _At_ (OutputString->Buffer, _Post_notnull_) NTSTATUS NcLoadRegistryString(_In_ HANDLE Key
 
BOOLEAN NcIs8DOT3Compatible (_In_ PUNICODE_STRING TestName, _In_opt_ PUNICODE_STRING LongName)
 
 PAGED_CODE ()
 
 if (Status !=STATUS_BUFFER_TOO_SMALL &&Status !=STATUS_BUFFER_OVERFLOW)
 
 if (TempMappingBuffer !=NULL)
 
 if (TempMappingBuffer==NULL)
 
 if (Status==STATUS_BUFFER_TOO_SMALL||Status==STATUS_BUFFER_OVERFLOW)
 
 if (!NT_SUCCESS(Status))
 
 if (TempMappingBuffer->Type !=REG_SZ||TempMappingBuffer->DataLength >=MAXUSHORT||TempMappingBuffer->DataLength<=sizeof(WCHAR))
 
 if (OutputStringBuffer==NULL)
 
 RtlCopyMemory (OutputStringBuffer, TempMappingBuffer->Data, OutputString->MaximumLength)
 
 if (OutputStringBuffer !=NULL)
 
NTSTATUS NcInitializeMapping (_In_ PUNICODE_STRING RegistryPath)
 

Variables

_In_ PCWSTR valueName
 
_In_ PCWSTR _Out_ PUNICODE_STRING OutputString
 
ULONG TempMappingKeyLength = 0
 
UNICODE_STRING ValueString
 
PWCHAR OutputStringBuffer = NULL
 
NTSTATUS Status
 
NcLoadRegistryStringRetry __pad0__
 
NcLoadRegistryStringRetry KeyValuePartialInformation
 
NcLoadRegistryStringRetry NULL
 
 TempMappingBuffer
 
OutputString MaximumLength = (USHORT)TempMappingBuffer->DataLength - sizeof(WCHAR)
 
OutputString Buffer = OutputStringBuffer
 
OutputString Length = OutputString->MaximumLength
 
NcLoadRegistryStringCleanup __pad1__
 
NcLoadRegistryStringCleanup NC_TAG
 

Function Documentation

◆ _At_()

_At_ ( OutputString->  Buffer,
_Post_notnull_   
)

◆ if() [1/8]

if ( Status = STATUS_BUFFER_TOO_SMALL && Status != STATUS_BUFFER_OVERFLOW)

Definition at line 65 of file ncinit.c.

◆ if() [2/8]

if ( TempMappingBuffer = NULL)

Definition at line 75 of file ncinit.c.

◆ if() [3/8]

if ( TempMappingBuffer  = NULL)

Definition at line 83 of file ncinit.c.

◆ if() [4/8]

if ( Status  = = STATUS_BUFFER_TOO_SMALL || Status == STATUS_BUFFER_OVERFLOW)

Definition at line 106 of file ncinit.c.

◆ if() [5/8]

if ( NT_SUCCESSStatus)

Definition at line 112 of file ncinit.c.

◆ if() [6/8]

if ( TempMappingBuffer->Type !  = REG_SZ || TempMappingBuffer->DataLength >= MAXUSHORT || TempMappingBuffer->DataLength <= sizeof(WCHAR))

Definition at line 124 of file ncinit.c.

◆ if() [7/8]

if ( OutputStringBuffer  = NULL)

Definition at line 142 of file ncinit.c.

◆ if() [8/8]

if ( OutputStringBuffer = NULL)

Definition at line 173 of file ncinit.c.

◆ NcInitializeMapping()

NTSTATUS NcInitializeMapping ( _In_ PUNICODE_STRING  RegistryPath)

Definition at line 282 of file ncinit.c.

◆ NcIs8DOT3Compatible()

BOOLEAN NcIs8DOT3Compatible ( _In_ PUNICODE_STRING  TestName,
_In_opt_ PUNICODE_STRING  LongName 
)

Definition at line 181 of file ncinit.c.

◆ PAGED_CODE()

PAGED_CODE ( )

◆ RtlCopyMemory()

RtlCopyMemory ( OutputStringBuffer  ,
TempMappingBuffer->  Data,
OutputString->  MaximumLength 
)

Variable Documentation

◆ __pad0__

NcLoadRegistryStringRetry __pad0__

Definition at line 53 of file ncinit.c.

◆ __pad1__

NcLoadRegistryStringCleanup __pad1__

Definition at line 170 of file ncinit.c.

◆ Buffer

Definition at line 156 of file ncinit.c.

◆ KeyValuePartialInformation

NcLoadRegistryStringRetry KeyValuePartialInformation

Definition at line 53 of file ncinit.c.

◆ Length

Definition at line 159 of file ncinit.c.

◆ MaximumLength

OutputString MaximumLength = (USHORT)TempMappingBuffer->DataLength - sizeof(WCHAR)

Definition at line 155 of file ncinit.c.

◆ NC_TAG

NcLoadRegistryStringCleanup NC_TAG

Definition at line 170 of file ncinit.c.

◆ NULL

NcLoadRegistryStringRetry NULL

Definition at line 53 of file ncinit.c.

◆ OutputString

_In_ PCWSTR _Out_ PUNICODE_STRING OutputString
Initial value:
{
PKEY_VALUE_PARTIAL_INFORMATION TempMappingBuffer = NULL
TempMappingBuffer
Definition: ncinit.c:79
NcLoadRegistryStringRetry NULL
Definition: ncinit.c:53

Definition at line 8 of file ncinit.c.

◆ OutputStringBuffer

OutputStringBuffer = NULL

Definition at line 41 of file ncinit.c.

◆ Status

return Status
Initial value:
= ZwQueryValueKey( Key,
TempMappingBuffer
Definition: ncinit.c:79
UNICODE_STRING ValueString
Definition: ncinit.c:40
NcLoadRegistryStringRetry KeyValuePartialInformation
Definition: ncinit.c:53
ULONG TempMappingKeyLength
Definition: ncinit.c:39

Definition at line 42 of file ncinit.c.

◆ TempMappingBuffer

TempMappingBuffer
Initial value:
= ExAllocatePoolWithTag( PagedPool,
ULONG TempMappingKeyLength
Definition: ncinit.c:39
NcLoadRegistryStringCleanup NC_TAG
Definition: ncinit.c:170

Definition at line 79 of file ncinit.c.

◆ TempMappingKeyLength

NcLoadRegistryStringRetry & TempMappingKeyLength = 0

Definition at line 39 of file ncinit.c.

◆ valueName

_In_ PCWSTR valueName

Definition at line 8 of file ncinit.c.

◆ ValueString

NcLoadRegistryStringRetry & ValueString

Definition at line 40 of file ncinit.c.

Social Network


Services Overview

Architect, implement and test file system filter drivers for a wide range of functionality. We can offer several levels of assistance to meet your specific.

Contact Us

You are welcome to contact us for salse or partnership.

Sales: sales@easefilter.com
Support: support@easefilter.com
Info: info@easefilter.com