int IAsyncReader.RequestAllocator(IMemAllocator pPreferred, AllocatorProperties pProps, out IMemAllocator ppActual)
 {
     if (pPreferred != null)
     {
         ppActual = pPreferred;
         if (pProps != null)
             pPreferred.GetProperties(pProps);
         return S_OK;
     }
     ppActual = null;
     return E_FAIL;
 }
 int IMemAllocator.GetProperties(AllocatorProperties pProps)
 {
     throw new NotImplementedException();
 }
 int IMemAllocator.SetProperties(AllocatorProperties pRequest, AllocatorProperties pActual)
 {
     throw new NotImplementedException();
 }
 public int RequestAllocator(IMemAllocator pPreferred, AllocatorProperties pProps, out IMemAllocator ppActual)
 {
     // always use their allocator
     if (pPreferred != null)
     {
         ppActual = pPreferred;
         allocator = pPreferred;
         return S_OK;
     }
     else
     {
         ppActual = null;
         return E_NOTIMPL;
     }
 }