The SecBuffer structure describes a buffer that is allocated by a transport application to pass to a security package.
typedef struct _SecBuffer {
ULONG cbBuffer;
ULONG BufferType;
PVOID pvBuffer;
} SecBuffer, *PSecBuffer;
| Flag | Meaning |
|---|---|
| SECBUFFER_EMPTY | This is a placeholder in the buffer array. The caller can supply several such entries in the array, and the security package can return information in them. For more information, see Context Semantics. |
| SECBUFFER_DATA | Used for common data. The security package can read this data, and write it, for example, to encrypt some or all of it. |
| SECBUFFER_TOKEN | This buffer is used to indicate the security token portion of the message. This is "read-only" for input parameters, or "read/write" for output parameters. |
| SECBUFFER_PKG_PARAMS | These are transport-to-package–specific parameters. For example, the Netware redirector may supply the server object identifier, while DCE RPC can supply an association UUID, and so on. |
| SECBUFFER_MISSING | The security package uses this value to indicate the number of missing bytes in a particular message. The pvBuffer member is ignored in this type. |
| SECBUFFER_EXTRA | The security package uses this value to indicate the number of extra, or unprocessed bytes in a message. |
| SECBUFFER_STREAM_TRAILER | Indicates a protocol-specific trailer for a particular record. Not usually of interest to callers. |
| SECBUFFER_STREAM_HEADER | Indicates a protocol-specific header for a particular record. Not usually of interest to callers. |
In addition, BufferType can combine the following flag with any of the flags in the preceding table.
| Flag | Meaning |
|---|---|
| SECBUFFER_READONLY | The buffer is read-only. This flag is intended for sending header information to the security package for checksumming or the like. The package can read this buffer, but cannot modify it. |
SecBufferDesc