#define _IRIS_SPECTRUM_EXPORT_REFLECTOR_ROUTINES_ #include <irisspectrump.h> // // Functions // _Check_return_ _Success_(return == ISTATUS_SUCCESS) ISTATUS ReflectorAllocate( _In_ PCREFLECTOR_VTABLE ReflectorVTable, _When_(DataSizeInBytes != 0, _In_reads_bytes_opt_(DataSizeInBytes)) PCVOID Data, _In_ SIZE_T DataSizeInBytes, _When_(DataSizeInBytes != 0, _Pre_satisfies_(_Curr_ != 0 && (_Curr_ & (_Curr_ - 1)) == 0 && DataSizeInBytes % _Curr_ == 0)) SIZE_T DataAlignment, _Out_ PREFLECTOR *Reflector ) { BOOL AllocationSuccessful; PVOID HeaderAllocation; PVOID DataAllocation; PREFLECTOR AllocatedReflector; if (ReflectorVTable == NULL) { return ISTATUS_INVALID_ARGUMENT_00; } if (DataSizeInBytes != 0) {
Environment: Kernel mode --*/ #include "nc.h" #ifdef ALLOC_PRAGMA #pragma alloc_text(PAGE, NcAllocateEResource) #pragma alloc_text(PAGE, NcCreateFileHelper) #pragma alloc_text(PAGE, NcGetFileNameInformation) #endif _When_(Data == NULL, _Pre_satisfies_(FileObject != NULL && Instance != NULL)) _When_(FileObject == NULL || Instance == NULL, _Pre_satisfies_(Data != NULL)) NTSTATUS NcGetFileNameInformation( _In_opt_ PFLT_CALLBACK_DATA Data, _In_opt_ PFILE_OBJECT FileObject, _In_opt_ PFLT_INSTANCE Instance, _In_ FLT_FILE_NAME_OPTIONS NameOptions, _Outptr_ PFLT_FILE_NAME_INFORMATION *FileNameInformation ) /*++ Routine Description: This function is a wrapper to call the correct variant of FltGetFileNameInformation depending on the information we happen to