test: propvar.h File Reference

Main Page | Class Hierarchy | Class List | File List | Class Members | File Members

# propvar.h File Reference

`#include <debnot.h>`
`#include <propset.h>`

Go to the source code of this file.

## Classes

class | CBufferAllocator

## Defines

#define | StatusOverflow(pstatus, szReason)
#define | StatusAccessDenied(pstatus, szReason)
#define | StatusInvalidParameter(pstatus, szReason)
#define | StatusNoMemory(pstatus, szReason)
#define | StatusDiskFull(pstatus, szReason)
#define | StatusError(pstatus, szReason, Status)
#define | StatusKBufferOverflow(pstatus, szReason) StatusNoMemory(pstatus, szReason)
#define | KERNELSELECT(k, u) u
#define | DBGPROPASSERT KERNELSELECT(DBGPROP, DBG)
#define | TraceStatus(szReason)
#define | AssertVarField(field, cb)
#define | AssertVarVector(field, cbElem)
#define | AssertByteField(field) AssertVarField(field, sizeof(BYTE))
#define | AssertShortField(field) AssertVarField(field, sizeof(SHORT))
#define | AssertLongField(field) AssertVarField(field, sizeof(LONG))
#define | AssertLongLongField(field) AssertVarField(field, sizeof(LONGLONG))
#define | AssertStringField(field) AssertVarField(field, sizeof(VOID *))
#define | AssertByteVector(field) AssertVarVector(field, sizeof(BYTE))
#define | AssertShortVector(field) AssertVarVector(field, sizeof(SHORT))
#define | AssertLongVector(field) AssertVarVector(field, sizeof(LONG))
#define | AssertLongLongVector(field) AssertVarVector(field, sizeof(LONGLONG))
#define | AssertStringVector(field) AssertVarVector(field, sizeof(VOID *))
#define | AssertVariantVector(field) AssertVarVector(field, sizeof(PROPVARIANT))
#define | BSTRLEN(bstrVal) *((ULONG *) bstrVal - 1)
#define | DEFINE_CBufferAllocator__Allocate

## Functions

SERIALIZEDPROPERTYVALUE * | RtlConvertVariantToProperty (IN PROPVARIANT const *pvar, IN USHORT CodePage, OUT SERIALIZEDPROPERTYVALUE *pprop, IN OUT ULONG *pcb, IN PROPID pid, IN BOOLEAN fVariantVector, OPTIONAL OUT ULONG *pcIndirect)
SERIALIZEDPROPERTYVALUE * | RtlConvertVariantToPropertyNoEH (IN PROPVARIANT const *pvar, IN USHORT CodePage, OUT SERIALIZEDPROPERTYVALUE *pprop, IN OUT ULONG *pcb, IN PROPID pid, IN BOOLEAN fVariantVector, OPTIONAL OUT ULONG *pcIndirect, OUT NTSTATUS *pstatus)
BOOLEAN | RtlConvertPropertyToVariant (IN SERIALIZEDPROPERTYVALUE const *pprop, IN USHORT CodePage, OUT PROPVARIANT *pvar, IN PMemoryAllocator *pma)
BOOLEAN | RtlConvertPropertyToVariantNoEH (IN SERIALIZEDPROPERTYVALUE const *pprop, IN USHORT CodePage, OUT PROPVARIANT *pvar, IN PMemoryAllocator *pma, OUT NTSTATUS *pstatus)
SERIALIZEDPROPERTYVALUE * | PrConvertVariantToProperty (IN PROPVARIANT const *pvar, IN USHORT CodePage, OUT SERIALIZEDPROPERTYVALUE *pprop, IN OUT ULONG *pcb, IN PROPID pid, IN BOOLEAN fVariantVector, OPTIONAL OUT ULONG *pcIndirect)
SERIALIZEDPROPERTYVALUE * | PrConvertVariantToPropertyNoEH (IN PROPVARIANT const *pvar, IN USHORT CodePage, OUT SERIALIZEDPROPERTYVALUE *pprop, IN OUT ULONG *pcb, IN PROPID pid, IN BOOLEAN fVariantVector, OPTIONAL OUT ULONG *pcIndirect, OUT NTSTATUS *pstatus)
BOOLEAN | PrConvertPropertyToVariant (IN SERIALIZEDPROPERTYVALUE const *pprop, IN USHORT CodePage, OUT PROPVARIANT *pvar, IN PMemoryAllocator *pma)
BOOLEAN | PrConvertPropertyToVariantNoEH (IN SERIALIZEDPROPERTYVALUE const *pprop, IN USHORT CodePage, OUT PROPVARIANT *pvar, IN PMemoryAllocator *pma, OUT NTSTATUS *pstatus)
VOID | CleanupVariants (IN PROPVARIANT *pvar, IN ULONG cprop, IN PMemoryAllocator *pma)

## Define Documentation

#define AssertByteField | ( | field |  | ) | AssertVarField(field, sizeof(BYTE))

| Definition at line 190 of file propvar.h.

#define AssertByteVector | ( | field |  | ) | AssertVarVector(field, sizeof(BYTE))

| Definition at line 196 of file propvar.h.

#define AssertLongField | ( | field |  | ) | AssertVarField(field, sizeof(LONG))

| Definition at line 192 of file propvar.h.

#define AssertLongLongField | ( | field |  | ) | AssertVarField(field, sizeof(LONGLONG))

| Definition at line 193 of file propvar.h.

#define AssertLongLongVector | ( | field |  | ) | AssertVarVector(field, sizeof(LONGLONG))

| Definition at line 199 of file propvar.h.

#define AssertLongVector | ( | field |  | ) | AssertVarVector(field, sizeof(LONG))

| Definition at line 198 of file propvar.h.

#define AssertShortField | ( | field |  | ) | AssertVarField(field, sizeof(SHORT))

| Definition at line 191 of file propvar.h.

#define AssertShortVector | ( | field |  | ) | AssertVarVector(field, sizeof(SHORT))

| Definition at line 197 of file propvar.h.

#define AssertStringField | ( | field |  | ) | AssertVarField(field, sizeof(VOID *))

| Definition at line 194 of file propvar.h.

#define AssertStringVector | ( | field |  | ) | AssertVarVector(field, sizeof(VOID *))

| Definition at line 200 of file propvar.h.

#define AssertVarField | ( | field,
|  | cb |  | ) |

Value:

    PROPASSERT(FIELD_OFFSET(PROPVARIANT, iVal) == FIELD_OFFSET(PROPVARIANT, field) && \
             sizeof(((PROPVARIANT *) 0)->field) == (cb))

Definition at line 179 of file propvar.h.

#define AssertVariantVector | ( | field |  | ) | AssertVarVector(field, sizeof(PROPVARIANT))

| Definition at line 201 of file propvar.h.

#define AssertVarVector | ( | field,
|  | cbElem |  | ) |

Value:

    PROPASSERT(FIELD_OFFSET(PROPVARIANT, cai.cElems) == \
                 FIELD_OFFSET(PROPVARIANT, field.cElems) && \
             FIELD_OFFSET(PROPVARIANT, cai.pElems) == \
                 FIELD_OFFSET(PROPVARIANT, field.pElems) && \
             sizeof(((PROPVARIANT *) 0)->field.pElems[0]) == (cbElem))

Definition at line 183 of file propvar.h.

#define BSTRLEN | ( | bstrVal |  | ) | *((ULONG *) bstrVal - 1)

| Definition at line 204 of file propvar.h.

#define DBGPROPASSERT KERNELSELECT(DBGPROP, DBG)

| Definition at line 163 of file propvar.h.

#define DEFINE_CBufferAllocator__Allocate

Value:

    VOID *                                                          \
    CBufferAllocator::Allocate(ULONG cb)                            \
    {                                                               \
        VOID *pv;                                                   \
                                                                    \
        cb = (cb + sizeof(LONGLONG) - 1) & ~(sizeof(LONGLONG) - 1); \
        if (cb > _cbFree)                                           \
        {                                                           \
            return(NULL);                                           \
        }                                                           \
        pv = _pvCur;                                                \
        _pvCur = (BYTE *) _pvCur + cb;                              \
        _cbFree -= cb;                                              \
        return(pv);                                                 \
    }

Definition at line 252 of file propvar.h.

#define KERNELSELECT | ( | k,
|  | u |  | ) | u

| Definition at line 160 of file propvar.h.

#define StatusAccessDenied | ( | pstatus,
|  | szReason |  | ) |

Value:

    *(pstatus) = STATUS_ACCESS_DENIED;        \
              TraceStatus(szReason);

Definition at line 130 of file propvar.h.

#define StatusDiskFull | ( | pstatus,
|  | szReason |  | ) |

Value:

    *(pstatus) = STATUS_DISK_FULL;            \
              TraceStatus(szReason);

Definition at line 142 of file propvar.h.

#define StatusError | ( | pstatus,
|  | szReason,
|  | Status |  | ) |

Value:

    *(pstatus) = Status;                      \
              TraceStatus(szReason);

Definition at line 146 of file propvar.h.

#define StatusInvalidParameter | ( | pstatus,
|  | szReason |  | ) |

Value:

    *(pstatus) = STATUS_INVALID_PARAMETER;    \
              TraceStatus(szReason);

Definition at line 134 of file propvar.h.

#define StatusKBufferOverflow | ( | pstatus,
|  | szReason |  | ) | StatusNoMemory(pstatus, szReason)

| Definition at line 153 of file propvar.h.

#define StatusNoMemory | ( | pstatus,
|  | szReason |  | ) |

Value:

    *(pstatus) = STATUS_INSUFFICIENT_RESOURCES;\
              TraceStatus(szReason);

Definition at line 138 of file propvar.h.

#define StatusOverflow | ( | pstatus,
|  | szReason |  | ) |

Value:

    *(pstatus) = STATUS_BUFFER_OVERFLOW;      \
              TraceStatus(szReason)

Definition at line 126 of file propvar.h.

#define TraceStatus | ( | szReason |  | ) |

| Definition at line 174 of file propvar.h.

## Function Documentation

VOID CleanupVariants | ( | IN PROPVARIANT * | pvar,
|  | IN ULONG | cprop,
|  | IN PMemoryAllocator * | pma
| ) |

BOOLEAN PrConvertPropertyToVariant | ( | IN SERIALIZEDPROPERTYVALUE const * | pprop,
|  | IN USHORT | CodePage,
|  | OUT PROPVARIANT * | pvar,
|  | IN PMemoryAllocator * | pma
| ) |

BOOLEAN PrConvertPropertyToVariantNoEH | ( | IN SERIALIZEDPROPERTYVALUE const * | pprop,
|  | IN USHORT | CodePage,
|  | OUT PROPVARIANT * | pvar,
|  | IN PMemoryAllocator * | pma,
|  | OUT NTSTATUS * | pstatus
| ) |

SERIALIZEDPROPERTYVALUE* PrConvertVariantToProperty | ( | IN PROPVARIANT const * | pvar,
|  | IN USHORT | CodePage,
|  | OUT SERIALIZEDPROPERTYVALUE * | pprop,
|  | IN OUT ULONG * | pcb,
|  | IN PROPID | pid,
|  | IN BOOLEAN | fVariantVector,
|  | OPTIONAL OUT ULONG * | pcIndirect
| ) |

SERIALIZEDPROPERTYVALUE* PrConvertVariantToPropertyNoEH | ( | IN PROPVARIANT const * | pvar,
|  | IN USHORT | CodePage,
|  | OUT SERIALIZEDPROPERTYVALUE * | pprop,
|  | IN OUT ULONG * | pcb,
|  | IN PROPID | pid,
|  | IN BOOLEAN | fVariantVector,
|  | OPTIONAL OUT ULONG * | pcIndirect,
|  | OUT NTSTATUS * | pstatus
| ) |

BOOLEAN RtlConvertPropertyToVariant | ( | IN SERIALIZEDPROPERTYVALUE const * | pprop,
|  | IN USHORT | CodePage,
|  | OUT PROPVARIANT * | pvar,
|  | IN PMemoryAllocator * | pma
| ) |

BOOLEAN RtlConvertPropertyToVariantNoEH | ( | IN SERIALIZEDPROPERTYVALUE const * | pprop,
|  | IN USHORT | CodePage,
|  | OUT PROPVARIANT * | pvar,
|  | IN PMemoryAllocator * | pma,
|  | OUT NTSTATUS * | pstatus
| ) |

SERIALIZEDPROPERTYVALUE* RtlConvertVariantToProperty | ( | IN PROPVARIANT const * | pvar,
|  | IN USHORT | CodePage,
|  | OUT SERIALIZEDPROPERTYVALUE * | pprop,
|  | IN OUT ULONG * | pcb,
|  | IN PROPID | pid,
|  | IN BOOLEAN | fVariantVector,
|  | OPTIONAL OUT ULONG * | pcIndirect
| ) |

SERIALIZEDPROPERTYVALUE* RtlConvertVariantToPropertyNoEH | ( | IN PROPVARIANT const * | pvar,
|  | IN USHORT | CodePage,
|  | OUT SERIALIZEDPROPERTYVALUE * | pprop,
|  | IN OUT ULONG * | pcb,
|  | IN PROPID | pid,
|  | IN BOOLEAN | fVariantVector,
|  | OPTIONAL OUT ULONG * | pcIndirect,
|  | OUT NTSTATUS * | pstatus
| ) |