_Pre_notnull_ _Pre_writable_byte_size_()

in src/framework/shared/core/fxrequestmemory.cpp [209:259]


    _Pre_notnull_ _Pre_writable_byte_size_(BufferSize) PVOID      Buffer,
    _In_ PMDL       BackingMdl,
    _In_ size_t     BufferSize,
    _In_ BOOLEAN    ReadOnly
    )
/*++

Routine Description:
    Updates the internal pointer to a new value.


Arguments:
    Request - new Request.
    
    Buffer - new buffer

    BackingMdl - associated MDL.
    
    BufferSize - length of Buffer in bytes

    ReadOnly - TRUE if read only buffer.

Return Value:
    None.

  --*/

{
    ASSERT(m_pBuffer == NULL);
    ASSERT(m_Request == NULL);
    ASSERT(m_Mdl == NULL);

    ASSERT(Request != NULL);

    m_pBuffer = Buffer;
    m_Mdl = BackingMdl;
    m_BufferSize = BufferSize;

    m_Request = Request;

    //
    // A single FxRequest IRP reference
    // is outstanding until destroy
    //
    m_Request->AddIrpReference();

    // Set access checking if its a readonly buffer
    if (ReadOnly) {
        SetFlags(IFxMemoryFlagReadOnly);
    }
}