I am using the function "CryptProtectData" , which takes as the first argument, the "CRYPT_INTEGER_BLOB" structure, which is defined as follows:

typedef struct _CRYPTOAPI_BLOB {
DWORD cbData;
BYTE *pbData; }

where pbData is the pointer to the data buffer..

I need to know that what is meant by data buffer, is it a byte array,??

If it is a byte array,then how it would be assigned back to the byte* pointer...??
It is not assigned directly even in unsafe mode...

Plzzz help...

This structure would be defined as

public struct CRYPT_ATTR_BLOB {
    /// DWORD->unsigned int
    public uint cbData;
    /// BYTE*
    public System.IntPtr pbData;

in C#.